Nuxt.js 项目中使用Vuex和Vue项目中使用略有不同
如果需要再单独的js文件中使用store,需要使用经典模式,不过文档介绍说
1 | 此功能已经弃用,将在Nuxt 3中删除。 |
总之Nuxt.js坑还是很多的,因为一套代码涉及服务器端执行和浏览器端执行,不是很好区分执行代码
实践下来发现还是坑比较多,虽然可以复用Vue的组件模块,不过小型项目还是使用传统的PHP会好一些
修改 store/index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import Vuex from "vuex"; const store = new Vuex.Store({ state: () => ({ token: "" }), getters: { getToken(state) { return state.token; }, }, mutations: { setToken(state, token) { state.token = token; }, removeToken(state) { state.token = ""; } }, actions: { } }); // 需要返回一个函数 export default () => { return store; }; |
js文件中使用
1 2 3 | import store from "@/store/index.js"; let token = store().getters.getToken; |
vue文件中使用
1 | let token = this.$store.getters.getToken; |
参考
https://zh.nuxtjs.org/guide/vuex-store