Vue 组件通信方式
组件化开发中,组件之间的数据传递是最常见的需求。本文梳理 6 种通信方式及其适用场景。
一、props / $emit(父子通信)
- 1.1 父组件通过 props 向子组件传值
- 1.2 子组件通过 $emit 触发父组件事件
- 1.3
.sync修饰符的语法糖
二、$refs / $parent / $children
- 2.1
$refs获取子组件实例 - 2.2
$parent访问父组件 - 2.3 局限性——耦合度高
三、EventBus(兄弟组件通信)
- 3.1 创建一个空的 Vue 实例作为事件中心
- 3.2
$on监听事件、$emit触发事件 - 3.3
$off销毁监听——防止内存泄漏
四、Vuex(全局状态管理)
- 4.1 什么时候需要 Vuex
- 4.2 State / Getter / Mutation / Action
- 4.3 单向数据流的理解
五、$attrs / $listeners
- 5.1 跨层级传递属性
- 5.2 避免中间组件逐层传递
六、provide / inject
- 6.1 祖先组件 provide 数据
- 6.2 后代组件 inject 使用
- 6.3 适用场景与局限性
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 谜思录!