摘要:使用时官方推荐使用才修改数据。缺点采用修改数据,可能会写很多函数。会上丧失掉一部分性能。因为新数据需要重新配置。使用我是需要保存的数据我是需要保存的数据组件中使用如果要双向绑定某个中的值。
使用vuex时 官方推荐使用commit才修改state数据。
优点便于调试,当数据变化时,可以在vuetools工具中看到是哪个函数修改了state值。
缺点采用commit修改数据,可能会写很多mutations函数。
会上丧失掉一部分性能。因为新数据需要重新配置watcher。
优化传一个字符串的path和需要修改的值,如果path="a.b.c"就换算成 state.a.b.c = "needsave", 这就达到了一个commit 解决所有保存的问题。
save(state, { path, data }) { if (!path ) { throw new Error("need path") } const keyPath = path.split(".") let needSave = state for (let i = 0; i < keyPath.length - 1; i++) { needSave = needSave[keyPath[i]] if(!needSave) { throw new Error(`error path: ${keyPath[i]}`) } } needSave[keyPath[keyPath.length - 1]] = data } // 使用 vuex.commit("save", {path:"a.b.c", data:"我是需要保存的数据"}) state.a.b.c = "我是需要保存的数据" //组件中使用 //如果要双向绑定某个vuex中的值。 //script computed: { c: { get(){ return vuex.state.a.b.c }, set(val) { vuex.commit("save", {path:"a.b.c",data: val}) } } }
这样就做到了在组件中双向绑定,并且使用commit改变state中的值,vuex使用严格模式也不会报错了。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/98564.html
先说一下Vuex到底是什么? Vuex 是一个专门为 vue.js 应用程序开发的状态管理模式 这个状态我们可以理解为在 data 中的属性,需要共享给其他组件使用的部分 也就是说,我们需要共享的数据,可以使用 vuex 进行统一集中式的管理 喜欢看代码学习的的可直接下载下方 Demo https://gitee.com/jiangliyue/... Vuex中的五种基本对象 state...
摘要:深入学习作为配合使用的数据状态管理库,针对解决兄弟组件或多层级组件共享数据状态的痛点问题来说,非常好用。至此,构造函数部分已经过了一遍了。 深入学习Vuex vuex作为配合vue使用的数据状态管理库,针对解决兄弟组件或多层级组件共享数据状态的痛点问题来说,非常好用。本文以使用者的角度,结合源码来学习vuex。其中也参考了许多前辈的文章,参见最后的Reference Vue加载Vuex...
阅读 1003·2021-11-25 09:43
阅读 1672·2019-08-30 13:59
阅读 1588·2019-08-30 11:22
阅读 2122·2019-08-30 11:06
阅读 1298·2019-08-28 17:51
阅读 3717·2019-08-26 12:12
阅读 777·2019-08-26 12:11
阅读 442·2019-08-26 12:10