1.什么是vuex?
state:数据 状态
view:数据的呈现
actions:数据的变更
2.什么时候用?
答:多个组件共享数据(状态)的时候。 之前的单项数据流被破坏
代码的可读性 维护性下降。
简单的单页应用:直接一个global event bus即可!
复杂的大型单页应用:vuex
全局单例模式管理!
3.Flux 架构就像眼镜:您自会知道什么时候需要它。
直观理解:看不清楚的时候自然需要眼睛。 开发过程中数据管理很杂乱的时
就需要使用了, 如人饮水,冷暖自知! 说的有点事后诸葛亮,正确的废话。
4.Vuex的核心就是store仓库,是state的容器。
a:状态(数据)存储响应式,依赖数据的组件会被数据驱动,就是当store中的state(数据)发生变化时,组件会被触发更新。
因为数据在computed属性中,computed属性中的数据会被vue底层监控哦! 所以才会触发组件的更新。
b:不能直接改变状态(数据),改变状态的唯一方式是提交mutations。
5.创建store
改变store中的state(状态):store.commit('mutations中的方法')
答:为何这么做? 跟踪依赖,谁提交的状态改变,
读取store中的state(数据):store.state.数据项 计算属性
6.单一状态树:一个store对象保存所有的state(数据)
7.Vuex 通过 store 选项,提供了一种机制将状态从根组件『注入』到每一个子组件中(需调用 Vue.use(Vuex)):
8.vuex管理的全局状态! 组件的局部状态自己管理即可!
9.mapState辅助函数:mapState辅助函数帮助我们生成计算属性
什么情况下用:当一个组件需要读取多个状态的时候,将这些状态都声明为计算属性会有显得重复和冗余。
10.getters:store对象的计算属性(组件的计算属性) state需要处理(过滤。。。)
state作为计算属性方法的第一个形参哦!
11.mapGetters辅助函数 将组件中的计算属性映射到store中的getters。
mapGetters 辅助函数仅仅是将 store 中的 getters 映射到局部计算属性:
12.Mutations
13.Actions:提交的时mutation,而不是直接改数据。
任何异步操作。
context:store实例的引用
store.dispatch分发action
14.Modules:store分割成模块