Nuxt.js 项目中使用Vuex和Vue项目中使用略有不同
如果需要再单独的js文件中使用store,需要使用经典模式,不过文档介绍说
此功能已经弃用,将在Nuxt 3中删除。
总之Nuxt.js坑还是很多的,因为一套代码涉及服务器端执行和浏览器端执行,不是很好区分执行代码
实践下来发现还是坑比较多,虽然可以复用Vue的组件模块,不过小型项目还是使用传统的PHP会好一些
修改 store/index.js
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文件中使用
import store from "@/store/index.js"; let token = store().getters.getToken;
vue文件中使用
let token = this.$store.getters.getToken;
参考