Vue2中pinia刷新后數(shù)據(jù)丟失的問題解決
Pinia:官網(wǎng)
Pinia 是一個(gè) Vue.js 狀態(tài)管理庫(kù),如果你在組件中修改了 store 中的數(shù)據(jù)并刷新了界面,Pinia 會(huì)將 store 中的數(shù)據(jù)重置為初始值,從而導(dǎo)致數(shù)據(jù)丟失的問題。
這里給出vue2的解決方案:
可以使用 Pinia 的 Persist 插件,該插件可以將 Pinia 的 store 數(shù)據(jù)持久化到本地存儲(chǔ)中,這樣當(dāng)你刷新頁(yè)面時(shí),store 中的數(shù)據(jù)不會(huì)丟失。可以參考文檔:文檔
安裝Persist ,選擇你喜歡的包管理器
# yarn yarn add pinia-plugin-persist # npm npm install pinia-plugin-persist
main.js文件
import { createPinia, PiniaVuePlugin } from 'pinia' //vue2需要引入PiniaVuePlugin
import piniaPluginPersist from 'pinia-plugin-persist'//引入pinia數(shù)據(jù)持久化插件
Vue.use(PiniaVuePlugin)
const pinia = createPinia()//創(chuàng)建pinia的實(shí)例
pinia.use(piniaPluginPersist);
new Vue({
router,
render: h => h(App),
pinia,
}).$mount('#app')articeId.js,這里我是保存文章Id,所以是這個(gè)文件,根據(jù)官方文檔,在src/stores下創(chuàng)建該文件
import { defineStore } from 'pinia'
// 你可以對(duì) `defineStore()` 的返回值進(jìn)行任意命名,但最好使用 store 的名字,同時(shí)以 `use` 開頭且以 `Store` 結(jié)尾。(比如 `useUserStore`,`useCartStore`,`useProductStore`)
// 第一個(gè)參數(shù)是你的應(yīng)用中 Store 的唯一 ID。
export const useArticleIdsStore = defineStore('articleId', {
// 其他配置...
persist: {
enabled: true,//開啟數(shù)據(jù)持久化
strategies: [
{
key: 'articleId',//給一個(gè)要保存的名稱
storage: localStorage,// localStorage 存儲(chǔ)方式為本地存儲(chǔ)
}
]
},
state:()=>{
//需要保存的數(shù)據(jù),初始值為0
return {articleId:0}
},
actions:{
}
})使用樣例:
import { useArticleIdsStore } from '@/stores/articleId'
const articleIdsStore = useArticleIdsStore();
methods: {
getArticle() {
//獲取存儲(chǔ)的articleId值
const articleId = articleIdsStore.articleId;
//其他操作...
},
},到此這篇關(guān)于Vue2中pinia刷新后數(shù)據(jù)丟失的問題解決的文章就介紹到這了,更多相關(guān)Vue2 pinia刷新后數(shù)據(jù)丟失內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue3組件不發(fā)生變化如何監(jiān)聽pinia中數(shù)據(jù)變化
- vue使用Pinia的五個(gè)實(shí)用技巧分享
- vue使用pinia實(shí)現(xiàn)全局無(wú)縫通信
- Vue3中使用Pinia修改State的五種方式
- vue中狀態(tài)管理器Pinia的用法詳解
- vue3項(xiàng)目引入pinia報(bào)錯(cuò)的簡(jiǎn)單解決
- Vue3在router中使用pinia報(bào)錯(cuò)的簡(jiǎn)單解決辦法
- Vue3中pinia用法示例
- vue3+pinia用戶信息持久緩存token的問題解決
- Vue中TypeScript和Pinia使用方法
相關(guān)文章
Vue實(shí)現(xiàn)滾動(dòng)加載更多效果的示例代碼
這篇文章介紹了在?Web?應(yīng)用中處理大量數(shù)據(jù)展示的兩種滾動(dòng)加載更多方案,滾動(dòng)加載更多通過分頁(yè)工作,優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單、用戶體驗(yàn)流暢,缺點(diǎn)是內(nèi)存占用可能過高,虛擬列表只渲染視口內(nèi)容,性能好但實(shí)現(xiàn)復(fù)雜,本文介紹了Vue實(shí)現(xiàn)滾動(dòng)加載更多效果,需要的朋友可以參考下2024-12-12
Vue常見錯(cuò)誤Error?in?mounted?hook解決辦法
這篇文章主要給大家介紹了關(guān)于Vue常見錯(cuò)誤Error?in?mounted?hook的解決辦法,出現(xiàn)這樣的問題,會(huì)發(fā)現(xiàn)跟聲明周期鉤子有關(guān)系,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
vue實(shí)現(xiàn)組件通信的八種方法實(shí)例
ue是數(shù)據(jù)驅(qū)動(dòng)視圖更新的框架, 所以對(duì)于vue來說組件間的數(shù)據(jù)通信非常重要,下面這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)組件通信的八種方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
vue中watch監(jiān)聽對(duì)象中某個(gè)屬性的方法
watch 的用法有個(gè)特點(diǎn),就是當(dāng)值第一次綁定的時(shí)候,不會(huì)執(zhí)行監(jiān)聽函數(shù),只有值發(fā)生改變才會(huì)執(zhí)行,如果我們需要在最初綁定值得時(shí)候也執(zhí)行函數(shù),就需要用到 immediate 屬性,這篇文章主要介紹了vue中watch監(jiān)聽對(duì)象中某個(gè)屬性的方法,需要的朋友可以參考下2023-04-04
使用vue-aplayer插件時(shí)出現(xiàn)的問題的解決
這篇文章主要介紹了使用vue-aplayer插件時(shí)出現(xiàn)的問題的解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
Vue 動(dòng)態(tài)組件與 v-once 指令的實(shí)現(xiàn)
這篇文章主要介紹了Vue 動(dòng)態(tài)組件與 v-once 指令的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
詳解vue項(xiàng)目打包后通過百度的BAE發(fā)布到網(wǎng)上的流程
這篇文章主要介紹了將vue的項(xiàng)目打包后通過百度的BAE發(fā)布到網(wǎng)上的流程,主要運(yùn)用的技術(shù)是vue+express+git+百度的應(yīng)用引擎BAE。需要的朋友可以參考下2018-03-03

