Vue 3 & Pinia 状态管理(7) - Pinia 持久化

作者: 温新

分类: 【Vue.js】

阅读: 1497

时间: 2023-07-22 16:32:17

嗨,我是温新,一名 PHPer。

本篇目标:了解什么是 Pinia

Pinia 官方文档:https://pinia.web3doc.top/introduction.html

为什么需要持久化

防止页面刷新后数据丢失。

持久化的实现:一是使用 sessionStroage 或 localStroage ,另外使用插件。本篇案例使用插件形式。

使用持久化插件

插件名称:pinia-plugin-persistedstate

步骤一:安装插件

npm i pinia-plugin-persistedstate

步骤二:引入插件

// main.ts
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
pinia.use(piniaPluginPersistedstate)

步骤三:开启持久化

// src/stores/user.ts

import { defineStore } from 'pinia'
import {ref, computed} from 'vue'

export default defineStore('user', () => {
	const age = ref(4)
}, {
  persist: true
})

persist: true 用于开启持久化

步骤四:模板使用

<!-- src/App.vue -->

<template>
  <div>
    <input type="number" v-model="age">
  </div>
</template>

<script setup lang="ts">
    import { toRefs } from 'vue'
    import useUserStore from './stores/user'
    const {name} = toRefs(userStore)
</script>

点击增加 age,然后刷新页面,会页面 age 的值没有恢复为原始值。

请登录后再评论