vuex里,无法将store注册到vue里面,this.$store获取为空

我的main.js是这样的:



import Vue from 'vue'
import Vuex from 'vuex';
import App from './App'
import router from './router'

//import store from './store/vuexstore.js'//引入vuexstore.js 也不行

Vue.config.productionTip = false

/*****/
Vue.use(Vuex)
let state={  
    cartData:[]
};
let mutations = {
    updateCartData(state, _cartData){
        state.cartData = _cartData;
    }
}
var store=new Vuex.Store({
    state,
    mutations
})

/*****/


new Vue({
  el: '#app',
  router,
  store,//使用store
  components: { App },
  template: '<App/>'
})
 console.log( store);//输出正常 应该是一个正常的Vuex.Store的实例
 console.log( this.$store,Vue.$store);//这里2个都为undefined
console.log( vue.prtotype);//可以看到vue里面挂载了$route等,确实没有$store

在谷歌的vue调试插件里面 也看到了vuex项目,但是代码中调用this.$store死活调用不到 求解~~
先谢谢大家了!!~

clipboard.png

阅读 12.6k
1 个回答

你在main.js里面的this并不是指向vue实例,Vue更是指向Vue这个构造函数,其中当然没有store对象,你可以到具体的vue实例中打印。或者

let myVue = new Vue({
  el: '#app',
  router,
  store,//使用store
  components: { App },
  template: '<App/>'
})
console.log(myVue.$store)

这时就能看到store对象了

推荐问题
宣传栏