Ond*_*čík 12 javascript store vue.js vuex vuex-modules
我只需要使用vuex-persistedstate我的一个模块来通过刷新页面来保持状态。
现在,当我plugins: [createPersistedState()]只在user模块内部使用时它不起作用。
plugins: [createPersistedState()]仅当我在商店内使用它时才有效,index.js但它会使所有模块持久化,这不是我想要的。
请问,有没有一种方法可以配置vuex-persistedstate为仅使用一个模块?
index.js
//import createPersistedState from 'vuex-persistedstate'
import Vue from 'vue'
import Vuex from 'vuex'
import user from './modules/user'
import workout from './modules/workout'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
},
getters: {
},
mutations: {
},
actions: {
},
modules: {
user,
workout
},
//This makes all store modules persist through page refresh
//plugins: [createPersistedState()]
})
Run Code Online (Sandbox Code Playgroud)
user.js
import { USER } from '../mutation-types'
import createPersistedState from 'vuex-persistedstate'
export default {
namespaced: true,
state: {
darkMode: true
},
getters: {
getDarkMode: state => () => state.darkMode
},
actions: {
toggleDarkMode: ({commit}) => commit(USER.TOGGLE_DARKMODE)
}
mutations: {
[USER.TOGGLE_DARKMODE]: (state) => state.darkMode = !state.darkMode
},
//This doesn't work
plugins: [createPersistedState()]
}
Run Code Online (Sandbox Code Playgroud)
Nit*_*Nit 24
查看API 文档,您需要将插件配置为仅保留存储的某个子集。
export default new Vuex.Store({
plugins: [
createPersistedState({
paths: ['user'],
}),
],
});
Run Code Online (Sandbox Code Playgroud)
从上面的文档:
paths <Array>:部分保留状态的任何路径的数组。如果没有给出路径,则完整状态将被持久化。必须使用点表示法指定路径。如果使用模块,请包含模块名称。如: “auth.user”(默认[])
| 归档时间: |
|
| 查看次数: |
9492 次 |
| 最近记录: |