Vuex官方文件
2018-05-18 11:46:13 0 举报
vuex
作者其他创作
大纲/内容
Action-Other2.通过commit mutation 来记录 action 产生的副作用(即状态变更)3.Action 大寫(CONTENT_READ/CONTENT_DELETE/CONTENT_UPDATE)4.3.Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象
State-主要功能1.定義共用的狀態變數2.類似(vue-data)
State-Getter-注意事項1.可透過屬性/方法/函數 達成2.getter 在通过方法访问时,每次都会去进行调用,而不会缓存结果。
Store
methods: { updateHandler() { this.$store .dispatch(\"CONTENT_UPDATE\
核心觀念Vuex
methods: { deleteHandler(index) { let target = this.contents[index]; this.$store.dispatch(\"CONTENT_DELETE\
mapActions 辅助函数mapMutations 辅助函数mapGetters 辅助函数.mapState 辅助函数
Module
Getter
Mutation-注意事項1.每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。2.mutation就像是store內的專屬事件,他只能由store本身進行回呼3.一旦引入Vuex,就不能直接修改$store.state的任意內容4.因为当 mutation 触发的时候,回调函数还没有被调用,devtools 不知道什么时候回调函数实际上被调用——实质上任何在回调函数中进行的状态的改变都是不可追踪的5. mutation 中混合异步调用会导致你的程序很难调试
Module-主要功能1.每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模2模块的局部状态/.命名空間3.Vuex 允许我们将 store 分割成模块(module)4.更高的封装度和复用性,你可以通过添加 namespaced: true
Payload1.Payload看下「提交载荷(Payload)」的章節。2.如果有些状态严格属于单个组件,最好还是作为组件的局部状态3.你可以向 store.commit 传入额外的参数,即 mutation 的 载荷(payload)4.action也可以
Module-Other命名空間1.在带命名空间的模块内访问全局内容(Global Assets)2.在带命名空间的模块注册全局 action3.带命名空间的绑定函数
Actions-Dispatch1.Action 通过 store.dispatch 方法触发:2.一个 store.dispatch 在不同模块中可以触发多个 action 函数。在这种情况下,只有当所有触发函数完成后,返回的 Promise 才会执行。3.将组件的 methods 映射为 store.dispatch 调用(需要先在根节点注入 store)4.Dispatch可以帶參數給Mutation
Actions-Store主要功能1.store發出通知2.异步逻辑3.類似(vue-methods)
Module-注意事項1.在 store 创建之后,你可以使用 store.registerModule 方法注册模块:2.例如从一个服务端渲染的应用保留 state。你可以通过 preserveState 选项将其归档3.可以使用 store.unregisterModule(moduleName) 来动态卸载模块。注意,你不能使用此方法卸载静态模块4.如果你希望使用全局 state 和 getter,rootState 和 rootGetter 会作为第三和第四参数传入 getter,也会通过 context 对象的属性传入 action。5.对于模块内部的 mutation 和 getter,接收的第一个参数是模块的局部状态对象6在全局命名空间内分发 action 或提交 mutation,将 { root: true }
StateGetterMutationActionModule
actions: { CONTENTS_READ: context = { return axios.get(\"http://localhost:3000/contents\").then(res = { context.commit(\"setContents\
0 条评论
下一页