(十三)Vuex 插件系统
2023-06-13 09:17:09 时间
一、实现一个状态持久化
说明
可以在页面刷新的时候 vuex 的数据不丢失,增强用户体验
- 在
store
文件夹下面创建一个persist.js
的文件来存放插件代码,插件就是接收store
作为参数的函数,可以做对mutations
actions
的等等一系列操作
(1)、 在页面刷新之前把数据存放到 localStoreage
export default function persisState(store) {
// 页面刷新之前的操作
// 监听 window.addEventListener('beforeunload', {})
window.addeventListenter('beforeunload', e => {
window.localStorage.setItem('vuex', JSON.stringify*=(store.state))
})
const prevState = window.localStorage.getItem('vuex')
if(prevState) {
// 替换状态
store.replaceState(JSON.parse(prevState))
}
}
(2)、导入插件
import { createStore, createLogger } from 'vuex'
export const store = createStore({
// 不用掉用
plugins: [createLogger(), persisState],
...
})
(3)、每次触发 mutations
的时候保存
export default function persisState(store) {
// 监听mutations 的触发
store.subscribe((mutation, state => {
window.localStorage.setItem('vuex', JSON.stringify*=(xxx))
}))
const prevState = window.localStorage.getItem('vuex')
if(prevState) {
// 替换状态
store.replaceState(JSON.parse(prevState))
}
}
相关文章
- 2D线扫描相机与3D结构光视觉测量系统的融合
- 架构必知:深入理解Linux I/O系统
- ELK日志分析系统&Sentil插件邮件报警
- java开发的医院体检预约系统
- 操作系统大赛:基于 eBPF 的容器监控工具 Eunomia 初赛报告(系统设计、ebpf 探针设计)
- 杀死Python?ChatGPT插件系统正式开放,不用写代码,人人都是程序员
- 【Android Gradle 插件】热修复实现 ① ( Android 热修复系统组成 | 热修复工作流程 | 热修复使用到的技术 | 热修复框架选择注意事项 )
- 播放器技术演进与探索,Web开播系统的技术演进,大屏终端音视频播放,音视频效果插件开放平台建设
- WordPress 5.8 新增 "Update URI" 插件头,第三方插件可以自建更新系统
- 探索Linux系统快速启动之旅(linux启动进度条)
- 优化Linux系统,缩短启动时间(linux启动时间长)
- Linux系统下的CC防御解决方案(linux防cc软件)
- SQL Server插件 – 实现系统更高效运行(sqlserver插件)
- 启动使用Arm Linux U盘快速启动系统(armlinuxu盘)
- 关闭Linux系统防火墙:步骤与方法(关闭linux的防火墙)
- 通过 VSCode RTOS 插件使用 Python 为物联网系统编写程序
- Linux插件:让系统更强大(linuxplugin)
- 使用 JDK1.4 在 Linux 系统上编写高效程序(jdk1.4linux)