Rumah >hujung hadapan web >View.js >Berikut ialah penulisan semula 'perangkap pinia vue3 dan analisis kod contoh penyelesaian': 'Analisis vue3 pinia, termasuk perangkap dan penyelesaian, digabungkan dengan kod contoh untuk analisis.'
yarn add pinia # or npm install pinia
// user.ts import { defineStore } from 'pinia' export const useUserStore = defineStore({ id: 'user', state: () => ({ ... }), actions: { ... } }) // components.vue import { useUserStore } from '@/store/user' const userStore = useUserStore()
// permission.ts import { NavigationGuardNext, RouteLocationNormalized } from 'vue-router' import router from './router' import { useUserStore } from './store/user' const userStore: any = useUserStore() router.beforeEach(async(to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) => { // TODO 判断是否登录 if (userStore.name) { ... } }) // main.ts const app = createApp(App) app.use(createPinia()) import router from './router' import '@/permission' app.use(router) app.mount('#app')Punca masalah Apabila kod dilaksanakan dari atas ke bawah, apabila
ditemui, modul status pengguna akan diperoleh, tetapi aplikasi belum telah dipasang lagi, jadi Pinia's The global state belum dimulakan lagi. Akibatnya, apabila memulakan pemerolehan status modul pengguna, status global tidak dimulakan, sekali gus menyebabkan masalah semasa. const userStore: any = useUserStore()
// permission.ts import { NavigationGuardNext, RouteLocationNormalized } from 'vue-router' import router from './router' import { useUserStore } from './store/user' let userStore: any = null router.beforeEach(async(to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) => { if (userStore === null) { userStore = useUserStore() } // TODO 判断是否登录 if (userStore.name) { ... } })
Atas ialah kandungan terperinci Berikut ialah penulisan semula 'perangkap pinia vue3 dan analisis kod contoh penyelesaian': 'Analisis vue3 pinia, termasuk perangkap dan penyelesaian, digabungkan dengan kod contoh untuk analisis.'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!