boenfu / vuex-along

:memo: auto save and restore state for vuex
https://boenfu.github.io/vuex-along/
MIT License
259 stars 36 forks source link

为什么我的值并没有存储起来 #3

Closed whs891015 closed 6 years ago

whs891015 commented 6 years ago

//存储值 import vuexAlong from 'vuex-along' vuexAlong.watch(['localNum'],true); vuexAlong.watchSession(['sessionNum'],true); const state = { admin_user_list:[] } const getters = { admin_user_list:function (state) { return state.admin_user_list }, } const actions={ async admin_user_list({commit},param) { commit('admin_user_list',{param:param}) } } const mutations = { admin_user_list(state, {param}) {state.admin_user_list = param},

} export default { state, getters, actions, mutations, plugins: [vuexAlong] } 这是一个模块 import Vue from 'vue' import Vuex from 'vuex' import SysUser from './modules/SysUser' Vue.use(Vuex) export default new Vuex.Store({ modules: { SysUser, }, })

whs891015 commented 6 years ago

或者我卸载index.js里面也是没有效果的刷新页面数据就没有了 import Vue from 'vue' import Vuex from 'vuex' import vuexAlong from 'vuex-along' import SysUser from './modules/SysUser' Vue.use(Vuex) //存储值 vuexAlong.watch(['localNum'],true); vuexAlong.watchSession(['sessionNum'],true); export default new Vuex.Store({ modules: { SysUser, }, plugins: [vuexAlong] })

boenfu commented 6 years ago

呃 vuexAlong.watch(['localNum'],true); 这个api是设置要保存或过滤的列表 也就是 localNum是你想保存的state的值 如你的admin_user_list

就酱写 vuexAlong.watch(['admin_user_list ']);

如果不设置 就默认保存所有state ;(。・ω・。)

whs891015 commented 6 years ago

第一次接触有点懵 能告诉我应该怎么改吗在我原来的代码基础上 以及组件中怎么调用

boenfu commented 6 years ago

你把 vuexAlong.watch(['localNum'],true); vuexAlong.watchSession(['sessionNum'],true); 去掉就能生效了

boenfu commented 6 years ago

页面刷新后会给你自动设置进去的 不需要调用

whs891015 commented 6 years ago

6666谢谢

boenfu commented 6 years ago

默认内容是存储在 localstorage的 如果你在某些地方需要清除 可以使用挂载在window下的 cleanVuexAlong() 或者使用 watchSession() 你可以看看文档ヾ(✿゚▽゚)ノ

whs891015 commented 6 years ago

请教一个问题我登录的时候 this.$store.dispatch('admin_token',data.admin_token) this.$router.push({ path: '/sys_user_list' }); 然后我在api.js获取这个值 import store from '../store' var admin_token = store.state.SysUser.admin_token ? store.state.SysUser.admin_token:''; 发现是空的我刷新之后才会有

boenfu commented 6 years ago

分发 Action 可能是异步的行为,在于你 action 里何时 提交 mutation ; data.admin_token 如果是已经取得的 异步结果 可以直接提交 mutation 试试 你的问题原因为何没看你的代码 我推断不出来 ; ̄▽ ̄

whs891015 commented 6 years ago

可以加我一下qq吗3054611833