1.Vue 如何实现组件间通信?
- 父子组件:使用 v-on 通过事件通信
- 爷孙组件:使用两次 v-on 通过爷爷爸爸通信,爸爸儿子通信实现爷孙通信
- 任意组件:使用 eventBus = new Vue() 来通信,eventBus.emit 是主要API
- 任意组件:使用 Vuex 通信
2.描述一下vuex(从下面几个方向回答)
- 1.是做什么的?
-答:Vuex是一个专门为Vue.js应用程序开发的状态管理模式,可以方便实现组件之间的数据共享。
- 2.使用Vuex统一管理状态的好处
答:①能够在vuex中集中管理共享的数据,易于开发和后期维护
②能够高效的实现组件之间的数据共享,提高开发效率
③存储在vuex中的数据都是响应式的,能够实时保持数据与页面的同步
- 有哪几个部分,每个部分都做什么
答:有五种,分别是State , Getter , Mutation , Action , Module (就是mapAction)
-
state:vuex的基本数据,用来存储变量,提供唯一的公共数据源,所有共享的数据都要统一放到Store的State中进行存储。
-
geeter:可以对Store中已有的数据加工处理之后形成新的数据,相当于state的计算属性;Store中数据发生变化,Getter的数据也会跟着发生变化。
-
mutation:用于变更State中的数据,必须是同步的(如果需要异步使用action)。每个mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。
- action:和mutation的功能大致相同,不同之处在于 ==》1. Action 提交的是 mutation,而不是直接变更状态。 2. Action 可以包含任意异步操作。
- modules:模块化vuex,可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。
-
状态的流向(流程图)
-
辅助函数
import { mapState, mapMutations, mapActions, mapGetters } from 'vuex' 复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END