文章目录
Uncaught Error: [vuex] must call Vue.use(Vuex) before creating a store instance解决
运用vuex时候发现这样的报错
简单翻译一下就是 一定要在创建一个store实例之前运用Vue.use(Vuex)
解决办法
直接说一下解决方法,之后再详细说一下如果只是着急改错误看到下面就差不多了
首先将main.js文件中的import Vuex from "vuex"; Vue.use(Vuex)
两句剪切,之后粘贴到src/store/index.js文件的上面
这样就不会有报错了
详细解释一下
首先 ,报错说一定要在创建一个store实例之前运用Vue.use(Vuex)
,那我们看一下自己的Vue.use(Vuex)
写在哪了(vuex是一个插件,应用时候不止需要引入 还需要Vue.use
一下)
找到自己代码,发现Vue.use(Vuex)
代码我们写到了main.js文件中,那么有人就会说,看代码我明明在引入store之前use的插件啊,为什么还会报错说我没有在创建store实例之前应用插件呢?这个有关于ES6模块化,不论import写在哪里,都会先执行完所有的import之后再执行代码,这样的话的确是引入store(创建store实例)之后才Vue.use(Vuex)
的,所以解决办法就是 ,把Vue.use(Vuex)
应用插件写在store/index.js文件中创建store实例之前
附简易代码
main.js
import Vue from 'vue'
import App from './App.vue'
// import Vuex from "vuex";
// Vue.use(Vuex)
//引入store
import store from "./store";
Vue.config.productionTip = false
const vm = new Vue({
render: h => h(App),
store,
beforeCreate() {
Vue.prototype.$bus = this
}
}).$mount('#app')
console.log(vm);
src/store/index.js
//该文件用于创建Vuex中最为核心的store
//引入Vuex
import Vuex from 'vuex';
import Vue from 'vue'
//使用vuex插件
Vue.use(Vuex)
//准备actions——用于响应组件中的动作
const actions = {}
//准备mutations——用于操作数据(state)
const mutations = {}
//准备state——用于存储数据
const state = {}
//创建store并暴露(导出)store
export default new Vuex.Store({
actions,
mutations,
state,
})
文件目录