You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
mutations: {
// we can use the ES2015 computed property name feature
// to use a constant as the function name
[SOME_MUTATION] (state) {
// mutate state
}
半翻译,半总结
读vuex文档
vuex是为了方便大型项目中多组件之间的状态管理而引入的插件,借鉴了Flux和Redux的架构模式。
整个app的状态都集中于store,store与简单的js对象相比有两点不同:
store的构成: state对象和mutations对象
vuex的工作流:
用户交互触发action,action dispatch 相应类型的mutaion,
mutation修改state。getter函数抽取state当中需要的部分,组件调用相应的getter展示需要的数据。
action函数接受一个store对象作为第一个参数,但是也可以传入对象,vuex会自动包装。
mutations
store.dispatch(name,...restArgs)
调用store.dispatch({type:name,args})
,对象作为handler的第二个参数Vue.set(obj, 'newProp', 123)
或使用es6语法
state.obj = { ...state.obj, newProp: 123 }
actions
argument destructuring
,可以写成这样:action的作用仅仅是dispatch mutation,不能返回值或者给action传递回调
在组件中使用时,可以在声明组件配置项中指定action,这样可以作为vm实例的方法,也可以应用在模板中。并且这样
不用显式传递state对象。
The text was updated successfully, but these errors were encountered: