vue组件通信

1.Vue 如何实现组件间通信?

  1. 父子组件:使用 v-on 通过事件通信
  2. 爷孙组件:使用两次 v-on 通过爷爷爸爸通信,爸爸儿子通信实现爷孙通信
  3. 任意组件:使用 eventBus = new Vue() 来通信,eventBus.oneventBus.on 和 eventBus.emit 是主要API
  4. 任意组件:使用 Vuex 通信

2.描述一下vuex(从下面几个方向回答)

  • 1.是做什么的?

-答:Vuex是一个专门为Vue.js应用程序开发的状态管理模式,可以方便实现组件之间的数据共享。

  • 2.使用Vuex统一管理状态的好处

答:①能够在vuex中集中管理共享的数据,易于开发和后期维护

②能够高效的实现组件之间的数据共享,提高开发效率

③存储在vuex中的数据都是响应式的,能够实时保持数据与页面的同步

  • 有哪几个部分,每个部分都做什么

答:有五种,分别是State , Getter , Mutation , Action , Module (就是mapAction)

  1. state:vuex的基本数据,用来存储变量,提供唯一的公共数据源,所有共享的数据都要统一放到Store的State中进行存储。

  2. geeter:可以对Store中已有的数据加工处理之后形成新的数据,相当于state的计算属性;Store中数据发生变化,Getter的数据也会跟着发生变化。

  3. mutation:用于变更State中的数据,必须是同步的(如果需要异步使用action)。每个mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。

图片.png

图片.png

  1. action:和mutation的功能大致相同,不同之处在于 ==》1. Action 提交的是 mutation,而不是直接变更状态。 2. Action 可以包含任意异步操作。

图片.png

  1. modules:模块化vuex,可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。
  • 状态的流向(流程图)

  • 辅助函数

    import { mapState, mapMutations, mapActions, mapGetters } from 'vuex'
    复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享