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清除浏览器全部cookie的问题及解决方法(绝对有效!)
最近项目要实现关闭浏览器清除用户缓存的功能,下面这篇文章主要给大家介绍了关于vue清除浏览器全部cookie的问题及解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2023-06-06
前端储存之localStrage、sessionStrage和Vuex使用
localStorage、sessionStorage和Vuex是三种不同的客户端存储方式,用于在浏览器中保存数据,localStorage和sessionStorage都是以键值对的形式存储数据,但localStorage存储的数据在关闭浏览器后仍然存在2025-01-01
Vue中this.$nextTick()方法的使用及代码示例
$nextTick()是Vue.js框架中的一个方法,它主要用于DOM操作,当我们修改Vue组件中的数据时,Vue.js会在下次事件循环前自动更新视图,并异步执行$nextTick()中的回调函数,本文主要介绍了Vue中this.$nextTick()方法的使用及代码示例,需要的朋友可以参考下2023-05-05
vue3使用vuedraggable和grid实现自定义拖拽布局方式
这篇文章主要介绍了vue3使用vuedraggable和grid实现自定义拖拽布局方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-06-06


最新评论