vue3组件通信

在Vue3中,组件之间的通信主要有以下几种方式

       一、 props/emits: 这是最常见的父子组件通信方式。父组件通过props向子组件传递数据,子组件通过emits触发事件并传递数据给父组件

        在子组件中:

                        

        在父组件中:

                        

                        

  二、mitt:一个小型的浏览器和 Node.js 事件发射器库,用于创建事件总线。它提供了一种简单的方式来实现不同组件、模块或任何其他独立逻辑单元之间的通信,这个函数返回一个具有 onoff 、 emitall 四个方法的对象,主要用于子传子。

  • on(type, handler) 用于注册事件监听器。它接受两个参数:事件类型 type 和事件处理函数 handler
  • off(type, handler) 用于移除事件监听器。它接受两个参数:事件类型 type 和要移除的事件处理函数 handler
  • emit(type, evt) 用于发送事件。它接受两个参数:事件类型 type 和事件对象 evt

        mitt 使用一个对象 all 来存储所有注册的事件监听器。对象的键是事件类型,值是一个数组,存储该事件类型的所有监听器。

        使用:

        1.控制台下载

                

        2.在src目录下创建一个工具文件夹utils,并在utils目录下创建mitter.ts文件

                

        3.在mitter.ts文件中写入

                

        4.在main.ts文件下导入emitter

                

        5.子组件(一)和子组件(二)传递值

        子组件(一):

                ​​​​​​​

        子组件(二):

                        ​​​​​​​                        ​​​​​​​        ​​​​​​​

   三、 $attrs :是Vue.js 中的一个实例属性,用于支持透传属性,即自动将父组件中绑定的非 Props 属性传递给子组件的根元素,主要用于父与孙之间的通讯。

        父组件中:

                      ​​​​​​​        

        子组件中:

        

        孙组件中:

        

        

        最后的输出结果:

        ​​​​​​​        

四、$refs/$parent:

五、provide/inject

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值