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中的数据到一个新属性上,然后在模板中使用这个属性值:

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
vue导出excel和echart图形分别在不同工作表的实现方法
这篇文章主要给大家介绍了如何使用vue实现导出excel和echart图形分别在不同工作表,文中有详细的代码示例供大家参考,对大家的学习或工作有一定的帮助,需要的朋友可以参考下2023-10-10


最新评论