今天在Vue中想尝试引入vuex做前端的数据存储,主要用来存下token,这样就不用存到sessionStorage中了,没想到报了下面这个错:
第一反应是store没有挂载到原型链上,检查了所有相关文件:
1. 引入的vuex是小写
2. store文件最后也导出了store
3. 在main.js里也进行了挂载操作:
结果仍然报this.$store not defined的错..
尝试把this.$store改为store,并在头部引入store.js文件,就不报错了。
但是每次使用时在头部引入store.js文件也太麻烦了!!!十分不甘心,继续debug,
既然把this.$store改为store就不报错,那么问题基本可以锁定在this身上。
console.log(this);在.vue的文件中,打印this应该是vm这个对象,
结果我打印出来是undefined!!说明这里的this并不是vm,继续回忆逻辑,最后发现我使用this.$store的文件不是.vue,只是一个简单的js文件,因此this就失灵了。。
把js用到this.$store的函数移到具体的.vue文件里,问题就成功解决了!!!