main.js:
import Vue from "vue";
import Axios from "axios";
import App from "./App.vue";
import router from "./router";
import store from "./store";
const axios = Axios.create({
baseURL: process.env.VUE_APP_BASE_URL
})
Vue.prototype.$http = axios;
new Vue({
router,
store,
render: h => h(App)
}).$mount("#app");
当我尝试在App.vue
中使用$ store时,它是未定义的:
created() {
this.$store.dispatch('logout') // this.$store is undefined
}
store.js:
export default new Vuex.Store({
actions: {
logout({commit}) {
return new Promise((resolve, reject) => {
commit('logout')
localStorage.removeItem('token')
delete Vue.prototype.$http.defaults.headers.common['Authorization']
resolve()
})
}
}
}
是因为它不是在App.vue中启动的,因为我可以在其他vue组件中使用。
答案 0 :(得分:3)
答案 1 :(得分:3)
import Vuex from 'vuex';
Vue.use(Vuex);
const store = new Vuex.Store({
// Options
});
然后放入Vue实例。
希望它对您有帮助。
答案 2 :(得分:0)
首先,您需要使用npm install vuex --save
然后,将其导入您的store.js
。
要了解何时,为什么和如何以使用Vuex,请参考以下URL https://dev.to/napoleon039/when-why-and-how-to-use-vuex-9fl