vuex 内刷新后才获取到sessionStorage数据
时间: 2024-05-08 16:21:22 浏览: 149
在 Vue.js 中,Vuex 是一个非常常用的状态管理工具,主要用于管理数据的共享和响应式更新。在使用 Vuex 时,如果你需要从 sessionStorage 中获取数据,并且希望在页面刷新后能够立即获取到数据,你可以考虑在 Vuex 的初始化阶段就将 sessionStorage 中的数据读取出来,并保存到 Vuex 的 state 中。具体实现方式如下:
1. 在 Vuex 的 state 中定义一个变量,用于存储 sessionStorage 中的数据:
```
const state = {
sessionStorageData: null
}
```
2. 在 Vuex 的初始化阶段,通过 sessionStorage.getItem() 方法获取 sessionStorage 中的数据,并将其保存到 Vuex 的 state 中:
```
const store = new Vuex.Store({
state,
mutations: {
setSessionStorageData(state, data) {
state.sessionStorageData = data
}
},
actions: {
initSessionStorageData({ commit }) {
const data = sessionStorage.getItem('yourSessionStorageKey')
commit('setSessionStorageData', data)
}
},
// ...
})
store.dispatch('initSessionStorageData')
```
3. 在组件中,通过 Vuex 的 mapState 辅助函数获取 state 中的数据,并在需要使用数据的地方使用即可:
```
<template>
<div>{{ sessionStorageData }}</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
computed: {
...mapState(['sessionStorageData'])
}
}
</script>
```
这样就可以在页面刷新后立即从 sessionStorage 中获取数据,并在组件中使用了。
阅读全文