Vue 面试题
目录

Vue 中有哪些组件通信的方式?

· 约 7 分钟读完 · 第 69 / 211 章

推荐答案

在 Vue 中,组件通信的方式主要有以下几种:

  1. Props 和 Events:父组件通过 props 向子组件传递数据,子组件通过 $emit 触发事件向父组件传递数据。
  2. $refs:父组件通过 ref 属性获取子组件的实例,直接调用子组件的方法或访问其数据。
  3. $parent 和 $children:通过 $parent 访问父组件实例,通过 $children 访问子组件实例。
  4. provide 和 inject:祖先组件通过 provide 提供数据,后代组件通过 inject 注入数据。
  5. Event Bus:创建一个全局的 Vue 实例作为事件总线,组件通过 $on 监听事件,通过 $emit 触发事件。
  6. Vuex:使用 Vuex 进行全局状态管理,组件通过 mapState、mapGetters、mapActions 等辅助函数与 Vuex 进行交互。

本题详细解读

1. Props 和 Events

  • Props:父组件通过 props 向子组件传递数据。子组件通过 props 选项接收数据。
  • Events:子组件通过 $emit 触发事件,父组件通过 v-on 监听事件并处理数据。

2. $refs

  • $refs:父组件通过 ref 属性获取子组件的实例,可以直接调用子组件的方法或访问其数据。

3. $parent 和 $children

  • $parent:子组件通过 $parent 访问父组件实例。
  • $children:父组件通过 $children 访问子组件实例。

4. provide 和 inject

  • provide:祖先组件通过 provide 提供数据。
  • inject:后代组件通过 inject 注入数据。

5. Event Bus

  • Event Bus:创建一个全局的 Vue 实例作为事件总线,组件通过 $on 监听事件,通过 $emit 触发事件。

6. Vuex

  • Vuex:使用 Vuex 进行全局状态管理,组件通过 mapState、mapGetters、mapActions 等辅助函数与 Vuex 进行交互。