分析原因:是pinia在main.js中还未注册好,便在其他文件中使用了它。
正确引用:
src/stores/index.js文件
import { createPinia } from 'pinia';
const pinia = createPinia();
export default pinia;
src/stores/user.js文件
import { defineStore } from 'pinia';
export const useUserStore = defineStore('user', {
state: () => {
return {
token: '',
};
},
getters: {},
actions: {
setToken(payload) {
this.token = payload;
localStorage.setItem('token', payload);
}
}
});
main.js中注册pinia
import { createApp } from 'vue';
import App from './App.vue';
import pinia from './stores';
import router from './router';
import './configs/permission';
createApp(App).use(pinia).use(router).mount('#app');
在src/configs/permission.js中使用pinia
import pinia from '@/stores/index';
import { useUserStore } from '@/stores/user';
const userStore = useUserStore(pinia);