Eine neue Generation von Statusverwaltungstools, die von Vue3 als Ersatz für Vuex empfohlen werden: Pinia-Konfigurations-Tutorial

Offizielle Website von Pinia: pinia.vuejs.org

1. Pinia installieren

npm install pinia --save

2. Pinia konfigurieren

(Die Standardprojekte verwenden alle TypeScript und das Standardsuffix ist .ts.)
Erstellen Sie ein neues Speicherverzeichnis im src-Verzeichnis und erstellen Sie dann in diesem Verzeichnis eine neue index.ts-Datei mit dem folgenden Inhalt:

import {
    
     createPinia } from 'pinia'

const store = createPinia()

export default store

3. Registrieren und aktivieren Sie Pinia im Projekt

Öffnen Sie „main.ts“ unter dem Projekt und fügen Sie den Inhalt von Pinia hinzu:

import {
    
     createApp } from 'vue'
import App from './App.vue'
// 导入Pinia状态管理器
import store from './store/index'

createApp(App).use(store).mount('#app')

4. Erstellen Sie einen Staat

Erstellen Sie eine neue user.ts-Datei im Verzeichnis src/store mit folgendem Inhalt:

import {
    
     defineStore } from 'pinia'

export const userStore = defineStore('userInfo', {
    
    
	state: () => {
    
    
		return {
    
    
			userID: '10001',
			userName: '某同学',
		}
	},
	getters: {
    
    
		fullName: (state) => {
    
    
			return `${
      
      state.userName}(${
      
      state.userID})`
		},
	},
	// action 支持 async/await 的语法,可以自行添加使用
	// action 里的方法相互之间调用,直接用 this 访问即可
	actions: {
    
    
		updateUserName(name: string) {
    
    
			this.userName = name
		},
	},
})

5. Verwenden Sie diesen Store auf der Seite

Beispielsweise muss es auf der Seite app.vue verwendet werden. Der Inhalt lautet wie folgt:

<template>
	{
    
    {
    
     store.fullName }}
	<p>
		<button @click="onChangeName()">改变Store里的名字</button>
	</p>
</template>

<script setup lang="ts">
import {
    
     ref, onMounted } from 'vue'
import {
    
     userStore } from '@/store/user'

const store = userStore()

const onChangeName = (name) => {
    
    
    store.updateUserName(name ?? '李同学')
}

onMounted(() => {
    
    
    onChangeName('张同学')
})

</script>

<style scoped></style>

Zu diesem Zeitpunkt ist ein Basisspeicher fertiggestellt. Wenn Sie noch den lokalen Speicher kombinieren müssen, um Daten dauerhaft zu speichern, lesen Sie weiter.

6. Datenpersistenz von Pinia mithilfe des Plug-ins (pinia-plugin-persist)

Pinia Plugin Persist offizielle Website: Pinia-Plugin-Persist

1. Pinia-plugin-persist installieren

npm install pinia-plugin-persist --save

2. Aktivieren Sie pinia-plugin-persist in Pinia

Öffnen Sie src/store/index.ts und ändern Sie den Inhalt wie folgt:

import {
    
     createPinia } from 'pinia'
import piniaPluginPersist from 'pinia-plugin-persist'

const store = createPinia()
store.use(piniaPluginPersist)

export default store

3. Verwenden Sie localStorage, um Daten in einem Zustand zu speichern

Öffnen Sie die oben erstellte Datei user.ts und ändern Sie den Inhalt wie folgt:

import {
    
     defineStore } from 'pinia'

export const userStore = defineStore('userInfo', {
    
    
	state: () => {
    
    
		return {
    
    
			userID: '10001',
			userName: '某同学',
		}
	},
	getters: {
    
    
		fullName: (state) => {
    
    
			return `${
      
      state.userName}(${
      
      state.userID})`
		},
	},
	actions: {
    
    
		updateUserName(name: string) {
    
    
			this.userName = name
		},
	},
	// 开启数据缓存
	persist: {
    
    
		enabled: true,
		strategies: [
			{
    
    
				key: 'my_project', // key可以自己定义,不填的话默认就是这个store的ID
				storage: localStorage, // storage可以填sessionStorage,localStorage
				paths: ['userID', 'userName'] }, // paths是需要存储的字段,不填就是全部
			},
		],
	},
})

おすすめ

転載: blog.csdn.net/xjtarzan/article/details/123665620