获取状态mapState
1 .在获取状态的时候,mapState([]),在计算属性里面可以直接映射state里面的东西
...mapState(
['searching']
)
2 .参数为对象的时候,箭头函数可以让代码非常简洁,也可以对state中的变量做一些参数判断
computed: mapState({
count: state => state.count,
countAlias: 'count',
countPlusLocalState (state) {
return state.count + this.localCount
}
})
mapGetter
1 .对state里面的数据进行计算,派生出一些状态,例如对列表进行过滤并计算
2 .store的计算属性,getter的返回值会跟他的依赖被缓存起来,且只有当他的依赖值发生了改变之后才会被重新计算
3 .getter会暴露为store.getters对象,一开始的mapGetter方法其实是提取的这个对象里面的方法
4 .getter可以接收其他的getter作为第二个参数
5 .也可以通过让getter返回一个函数,来实现getter传参。在你对store里的数组进行查询的时候非常有用
6 .getter在通过方法访问的时候,每次都会进行调用,而不会缓存结果
7 .mapGetters辅助函数仅仅是将store中的getter映射到局部计算属性,如果想要继续重命名,需要采取对象形式
Mutation
1 .mutation的使用也需要和Vue一样遵循一些注意事项
2 .提前在store中初始化好所需要的属性
3 .mutation必须是同步函数,不能进行异步操作,在Vue中,mutation都是同步事物
状态管理模式
1 .多个视图依赖同一状态:传参的方法对于多层嵌套的组件会非常繁琐,而且对于兄弟间的状态传递也是无能为力
2 .来自不同视图的行为需要变更为同一状态:可以采用父子组件直接引用或者事件来变更和同步状态的多份拷贝,但是这些会非常脆弱,通常会导致无法维护的代码
3 .