vue使用$store.commit() undefined报错的解决
作者:老唐在线铲屎
这篇文章主要介绍了vue使用$store.commit() undefined报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
vue使用$store.commit() undefined报错
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘commit’)
这里我想把token和userInfo分别存入sessionStorage和LocalStorage中,登录提交的时候报commit undefined
问题所在,我们没有在全局中配置store,解决办法如下
在main.js中配置store即可
成功存储
vuex的this.$store.commit
在这里将介绍store的mutations和modules模块化…
简单的vue项目,父子组件之间的数据传递可以使用props或者$emit等方式传递,大中型项目,需要在不相关的平行组件之间传递数据,并且很多数据需要多个组件循环使用。
再使用上面方式会让项目代码冗余,不利于组件复用。
modules模块化
当项目比较大时,一个store数据会非常多而杂,不易管理。可以建立多个“子仓库”,分别对应不同模块做数据的读取和操作。
1、在store下新建modules文件夹,在modules下新建user.js和common.js两个"子仓库"。
2、common.js管理主页下的数据,user.js管理用户信息数据:
3、将“子仓库"挂载到主仓库:
在main.js文件中注册store
这样就可以在任意组件中使用store中的数据,即使用计算属性返回store中的数据到一个新属性上,然后在模板中使用这个属性值:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。