Vuex的相关面试

102 阅读2分钟

一、Vuex是什么

是一个vue的状态管理模式,管理的是我们的很多场合需要用到的数据和方法,分门别类的进行管理

二、Vuex有哪些属性?

State、Getters、Mutations、Actions、Modules
State 类似于组件中的data,存放数据
Getters 理解为计算属性,用于简化仓库数据,让组件获取仓库的数据更加方便
Mutations 类似于组件中的methods,修改state的唯一手段
Actions 提交Mutations的
Modules 把以上四个属性再细分,让仓库更好管理

三、Vuex是单向数据流还是双向数据流

Vuex是单向数据流
如何证明Vuex是单向数据流?因为无法直接修改state中的数据,必须提交一个mutation才能修改
在组件中直接修改数据为何会报错而mutation修改不会报错?因为Vuex是单向数据流。。。

四、核心流程中的主要功能(官方文档)

Vue Components 是 vue 组件,组件会触发(dispatch)一些事件或动作,也就是图中的 Actions;
在组件中发出的动作,肯定是想获取或者改变数据的,但是在 vuex 中,数据是集中管理的,不能直接去更改数据,所以会把这个动作提交(Commit)到 Mutations 中;
然后 Mutations 就去改变(Mutate)State 中的数据;
当 State 中的数据被改变之后,就会重新渲染(Render)到 Vue Components 中去,组件展示更新后的数据,完成一个流程。

五、Vuex中的mutations和actions区别

Action 提交的是 mutation,而不是直接变更状态。
Action 可以包含任意异步操作。(mutations都是同步事务)
约定俗成:派发一个action -> actions里commit一个mutation -> mutations里修改仓库数据

六、Vuex如何做持久化存储

Vuex本身不能持久化存储
如有需要可使用:
1、持久化存储是localStorage、cookie
2、使用插件,如vue-persist插件