vue3中关于pinia及其持久化插件的使用
pinia是一个vue中的插件,功能是一个仓库,用来存放数据。当我们的数据在多个组件中都需要用到的时候,如果一个个向后端获取就会很麻烦。数据获取一次存放在pinia仓库中,用起来就会非常方便还减轻服务器压力。pinia官网:https://pinia.vuejs.org/zh/ ,也可以在vue的生态系统导航里面找到。pinia的安装和具体使用可以在官网指南找到,下面简单演示一下怎么使用(在vue3项目中)。
首先在项目中下载安装pinia,也可以创建项目的时候就选择安装,下载安装指令的pnpm如下
pnpm add pinia
下载好之后就在项目的main.js文件中导入创建pinia的函数,然后使用vue的use函数使用创建的pinia实例,代码演示如下
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
import App from './App.vue'
import router from './router'
const app = createApp(App)
app.use(createPinia().use(piniaPluginPersistedstate))
app.use(router)
app.mount('#app')
以上就是pinia简单使用,但pinia创建的仓库在我们关闭页面的时候就销毁了,生命周期相当于一次session,会话结束就销毁。如果我们需要本地持久化,那么就可以下载pinia的持久化插件。下面介绍一下pinia持久化插件的使用,使用流程和pinia差不多,导入然后使用插件,使用pinia本地持久化如上,导入命令如下。
插件官网:https://prazdevs.github.io/pinia-plugin-persistedstate/guide/config.html
pnpm i pinia-plugin-persistedstate
这样我们就可以在项目中使用pinia和它的持久化插件,下面看一下如何创建一个pinia仓库,首先我们在项目的src下面创建一个存放仓库的目录,在目录下面创建一个个仓库,仓库代码如下
import { ref } from 'vue'
import { defineStore } from 'pinia'
export const useMusicStore = defineStore('musicStore', () => {
//当前歌曲索引
const currentIndex = ref(0)
//添加歌曲
const addSong = (song)=>{
songs.value.push(song)
currentIndex.value = songs.value.length - 1
}
return {
currentIndex,
addSong
}
},{
//将播放的歌曲列表本地持久化
persist: {
enabled: true,
strategies: [
{
paths: ["songs"],
storage: localStorage,
},
],
},
})

浙公网安备 33010602011771号