vuex 第三方包實現數據持久化的方法
目的:
讓在vuex中管理的狀態(tài)數據同時存儲在本地。可免去自己存儲的環(huán)節(jié)。
- 在開發(fā)的過程中,像用戶信息(名字,頭像,token)需要vuex中存儲且需要本地存儲。
- 如果有別的模塊也需要持久化,也存儲在本地
1)首先:我們需要安裝一個vuex的插件vuex-persistedstate來支持vuex的狀態(tài)持久化。
npm i vuex-persistedstate
2)然后:在src/store 文件夾下新建 modules 文件,在 modules 下新建 user.js 和 cart.js
src/store/modules/user.js
// 用戶模塊 export default { namespaced: true, state () { return { // 用戶信息 profile: { id: '', avatar: '', nickname: '', account: '', mobile: '', token: '' } } }, mutations: { // 修改用戶信息,payload就是用戶信息對象 setUser (state, payload) { state.profile = payload } } }
3)繼續(xù):在 src/store/index.js 中導入 user 模塊。
import { createStore } from 'vuex' import user from './modules/user' export default createStore({ modules: { user } })
4)最后:使用 vuex-persistedstate 插件來進行持久化
import { createStore } from 'vuex' +import createPersistedstate from 'vuex-persistedstate' import user from './modules/user' export default createStore({ modules: { user }, + plugins: [ + createPersistedstate({ + key: 'erabbit-client-pc-store', + paths: ['user'] + }) + ] })
注意:
- ===> 默認是存儲在localStorage中
- ===> key是存儲數據的鍵名
- ===> paths是存儲state中的那些數據,如果是模塊下具體的數據需要加上模塊名稱,如user.token
- ===> 修改state后觸發(fā)才可以看到本地存儲數據的的變化。
總結:
- 基于第三方包實現vuex中的數據的持久化
- 觸發(fā)持久化的條件是state發(fā)生變化
到此這篇關于vuex 第三方包實現數據持久化的方法的文章就介紹到這了,更多相關vuex 數據持久化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue的watch和computed方法的使用及區(qū)別介紹
Vue的watch屬性可以用來監(jiān)聽data屬性中數據的變化。這篇文章主要介紹了Vue的watch和computed方法的使用及區(qū)別,需要的朋友可以參考下2018-09-09