• vue组件之间8种组件通信方式总结


    props和$emit 
    ①父组件向子组件传递数据是通过prop传递的,
    ②子组件传递数据给父组件是通过$emit触发事件来做到的


    $attrs和$listeners (Vue 2.4开始提供)
    ① 如果父组件A下面有子组件B,组件B下面有组件C,这时如果组件A想传递数据给组件C怎么办呢? 
    ② 能够让组件A之间传递消息给组件C


    中央事件总线 eventBus
    ① 如果两个组件不是父子关系呢?这种情况下可以使用中央事件总线的方式;
    ② 新建一个Vue事件bus对象,然后通过bus.$emit触发事件,bus.$on监听触发的事件

    provide和inject 
    ① 父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量。不论子组件有多深,只要调用了inject那么就可以注入provider中的数据。而不是局限于只能从当前父组件的prop属性来获取数据,只要在父组件的生命周期内,子组件都可以调用
     

    $parent和$children


    ref / refs
    ① ref:如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例,可以通过实例直接调用组件的方法或访问数据


    vuex处理组件之间的数据交互 


    总结
    ① 父子组件通信: props; $parent / $children; provide / inject ; ref ;$attrs /$listeners
    ② 兄弟组件通信: eventBus ; vuex
    ③ 跨级通信:eventBus;Vuex;provide / inject 、$attrs / $listeners

  • 相关阅读:
    java实现数据库自动异地备份
    Node与ES6模块
    2022年QS排名TOP院校对IB要求盘点
    【冰糖Python】Python 中的 assert 语句
    XShell无法链接(腾讯云)服务器
    [环境搭建]OpenHarmony开发环境搭建
    mybatis字段映射的容错性
    后端学习 -gRPC
    C#中DataGridView设置行高
    稳定版正式发布 | 用 Flutter 构建 Windows 桌面应用程序
  • 原文地址:https://blog.csdn.net/qq_38290251/article/details/125636016