【Vue】动态监听localStorage或sessionStorage中数据的变化:

2023-11-10

1、需求:
一个页面数据变化要改变另一个页面,甚至整个项目的数据变化
2、在main.js中:
/**
 * @description   监听本地储存的值变化
 * @param { number } type 1 localStorage 2 sessionStorage
 * @param { string } key 键
 * @param { string } data 要存储的数据
 * @returns 
*/
Vue.prototype.$addStorageEvent = function (type, key, data) {
  	if (type === 1) {
  		// 创建一个StorageEvent事件
  		var newStorageEvent = document.createEvent('StorageEvent');
  		const storage = {
     	 	setItem: function (k, val) {
          		localStorage.setItem(k, val);
          		// 初始化创建的事件
          		newStorageEvent.initStorageEvent('setItem', false, false, k, null, val, null, null);
          		// 派发对象
          		window.dispatchEvent(newStorageEvent);
      		}
  		}
 		return storage.setItem(key, data);
  	} else {
  		// 创建一个StorageEvent事件
  		var newStorageEvent = document.createEvent('StorageEvent');
  		const storage = {
      		setItem: function (k, val) {
         		sessionStorage.setItem(k, val);
          		// 初始化创建的事件
          		newStorageEvent.initStorageEvent('setItem', false, false, k, null, val, null, null);
          		// 派发对象
          		window.dispatchEvent(newStorageEvent);
      		}
  		}
  		return storage.setItem(key, data);
	}
}
3、页面使用:

【页面A】

this.$addStorageEvent(1, 'deptId', JSON.stringify(This.formData.deptId));//存储数据,addStorageEvent自定义方法
//this.$addStorageEvent(2, 'deptId', JSON.stringify(This.formData.deptId));//存储数据,addStorageEvent自定义方法

【页面B】

mounted() {
	const that = this
	// 在mouted钩子函数中进行监听localStorage
	window.addEventListener('setItem', () => {
		that.formData.deptId = JSON.parse(localStorage.getItem('deptId'))
		//that.formData.deptId是data里面声明的变量
		//that.formData.deptId = JSON.parse(sessionStorage.getItem('deptId'))
	})
},
4、问题:

【Vue】el-select 数据回显,只显示value不显示lable:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Vue】动态监听localStorage或sessionStorage中数据的变化: 的相关文章

  • 如何从 JavaScript 中计算 HTML 表格的渲染高度?

    调整窗口大小时 我需要知道表格有多大 以便我可以动态地很好地适应中间的所有其他内容 表格高度仅取决于动态加载的内容 如何在 JavaScript 中计算表格的渲染高度 您可以使用element offsetHeight https deve
  • 如何修复 Nuxt 中导航器/窗口/文档未定义的问题

    我试图确定 Nuxt 应用程序内的 UserAgent 和 Retina 信息 但应用程序抛出错误并显示导航 窗口未定义 我如何在 nuxt 应用程序中获取这些信息 const userAgent navigator userAgent t
  • 将 Javascript 变量转换为 PHP 变量

    我想使用由 videoel getCurrentTime 函数返回给我的 javascript 变量 并将其转换为 php 变量 以便我能够将其添加到我的 SQL 插入查询中 例如 INSERT INTO tblData VALUES ph
  • React 渲染中的不变违规或 React 中迭代和返回的正确方法

    我在 React 渲染中遇到了持续存在的问题 这段代码 jsx React DOM var AnswerRows React createClass componentDidMount function render function th
  • 在 asp.net vb 中通过第一个下拉列表值填充第二个下拉列表

    我在使用 asp net vb 时遇到了一些问题 我想做的是有2个下拉框 第一个下拉菜单将有 1 2 3 例如 第二个下拉菜单将有 A 乙 C 默认情况下 但是 如果选择 1 我希望第二个下拉菜单自动选择 c 我不知道 JavaScript
  • Three.js - 在代码中包含网格数据

    我有这个 Three js 代码 其中 JSON 加载器从文件 models mountain json 加载网格 var Three new function this scene new THREE Scene this camera
  • 如何在 Node.js 中让一个 EventEmitter 监听另一个 EventEmitter?

    我想做这样的事情 var events require events var emitterA new events EventEmitter var emitterB new events EventEmitter emitterA ad
  • ngModel.$parsers 忽略 ng-model 值末尾的空格

    我有这样的指令 directive noWhitespace parse function parse return restrict A require ngModel link function scope element attrs
  • 向对象添加元素

    我需要填充一个 json 文件 现在我有这样的东西 element id 10 quantity 1 我需要添加另一个 元素 我的第一步是使用该 json 将该 json 放入对象类型中cart JSON parse 现在我需要添加新元素
  • Telegram 授权无默认按钮

    使用 Telegram 第 3 方授权的唯一有记录的方法是使用其提供的脚本https core telegram org widgets login https core telegram org widgets login 这个脚本 正如
  • 使用 Javascript / Jquery 的本地存储(不使用 HTML5)

    我想在 javascript 或 jquery 中复制本地存储概念 类似于 HTML5 但不幸的是我不知道如何开始 任何人都可以建议如何使用 javascript 或 jquery 实现本地存储 不使用 HTML5 这是一个有点愚蠢的差事
  • 使用 jQuery 仅从字符串末尾修剪空格

    我知道 jQuery trim 函数 但我需要的是一种仅从字符串末尾修剪空格的方法 而不是开头 So str this is a string 会成为 str this is a string 有什么建议么 Thanks 您可以使用正则表达
  • setInterval 内的返回值

    我想在 setInterval 内返回一个值 我只想以一定的时间间隔执行一些操作 这就是我尝试过的 function git limit var i 0 var git setInterval function console log i
  • 元素中优先考虑 ngclick 而非 nghref

    tl dr 如何强制 Angular 只执行 ngclick 指令 a 元素而不清空 删除href 我的网站在某些元素上有一些自定义行为 模式打开 位置栏更新等 但对于 SEO 索引我also需要它成为一个 a 元素与href包含有效链接的
  • 如何在 angularjs 中修剪()字符串?

    有角度特定的方法吗 如果没有 我应该使用内置的jquery 来做到这一点吗 如果我应该使用内置的jquery 如何在不使用 的情况下访问trim 函数 或者这是必要的 编辑 是的 我知道 str trim 对不起 我需要这个才能在 IE 8
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没
  • Dojo/on 和捕获阶段

    有没有办法用 dojo on 在捕获阶段 而不是冒泡阶段 触发事件 我最终在这里寻找有关 on 的前身 dojo connect 的信息 就其价值而言 dojo connect 似乎不支持捕获阶段的事件侦听器 它的工作原理是将事件处理程序作
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一
  • 使用 jquery 提供附加功能时菜单未正确对齐

    I need to make a mega menu similar to one as show in image below 到目前为止 我已经能够在某种程度上使其发挥作用 例如jsFiddle 在这里 http jsfiddle ne
  • Serviceworker Bug event.respondWith

    我的 serviceworker 的逻辑是 当发生获取事件时 它首先获取包含一些布尔值 而不是 event request url 的端点 并根据我正在调用的值检查该值event respondWith 对于当前的获取事件 我正在提供来自缓

随机推荐

  • 数据结构和算法(双向链表和单向环型链表-Josephu问题)

    为什么会有双向链表 单链表的缺点分析 单向链表 查找的方向只能是一个方向 而双向链表可以向前或者向后查找 单向链表不能自我删除 需要考辅助节点 而双向链表 则可以自我删除 双向链表的结构 每个节点都有next和pre指针 next指向后 p
  • Qt-信号槽

    1 信号槽的概念 信号槽是Qt基于C 语法上新增的特性 可以实现对象之间的通信 形成一定因果关系 使用信号槽的对象需要具备两个条件 通信的对象必须继承自QObject 类中要有Q OBJECT宏 信号槽是观察者模式的一种实现 或者说是一种升
  • python使用第三方库PyPDF2、PDFMiner或pdfplumber来解析PDF文件

    使用第三方库PyPDF2 PDFMiner或pdfplumber来解析PDF文件可以实现PDF文件的内容提取 搜索和修改等功能 下面是使用PDFMiner来解析PDF文件的安装说明和代码示例 PDFMiner 下面是一些PDFMiner的常
  • IP总数,子网掩码查询表

    IP总数 子网掩码查询表 不同位数的网络号对应的子网以及主机数
  • 刷脸支付面向全国诚招实力合作商政策置顶

    刷脸支付在各大商店 餐馆逐渐铺开 消费者在购物付款时 不用打开手机二维码 只是看一眼支付设备就能轻松完成付款 从到地方的媒体 都在关注 刷脸支付 甚至会认为刷脸支付会代替现在的流行的二维码支付 成为未来支付的主流 刷脸支付正在掀起新零售新浪
  • 2022人生除生死外,无大事——一边治愈,一边前行!

    今天看完了 人生大事 这个电影 灵动的小姑娘 痞帅的朱一龙 一个殡葬师的生活在这个小姑娘的闯入后 开始有了波澜 活力 他逐渐找到了生活的意义和方向 挺好评的一部电影 虽然是关于离别 死亡 却是在很欢快嘈杂的情境下穿插着的 有泪有笑有温情 人
  • NRF24L01 一对三通信

    注意 NRF24L01 无论是一对一通信 还是一对多通信 其实本质上同一时刻是一对一通信 它是属于半双工通信 你只需要先调通一对一的通信 无论是一对2 一对六也是同一个原理 基础SPI知识和NRF24L01基础知识不多说 一 项目背景 1
  • jupyter lab使用

    记录一下使用过程中遇到的问题以及解决方法 网上资料感觉说的不是很明白 还是截图好用 增加行序号 自动换行 折叠代码 查找及替换 malplotlib 增加行序号 自动换行 折叠代码 打开setting 进入setting editor页面
  • xtrabackup 全量备份、恢复数据

    1 全量备份 root localhost lib innobackupex defaults file defaults file user mysql username password mysql password stream ta
  • seaborn.distplot()

    参考https www cntofu com book 172 docs 24 md 一 函数 seaborn distplot a bins None hist True kde True rug False fit None hist
  • 在家干什么副业好?工作之余做什么副业比较好

    现在真的到了一个副业时代 人人都可以做副业 不仅可以增加一份收入 还可以拓宽视野 增加阅历 如果是在家里做副业的话 那么还是推荐网络短视频 直播和写作 这也是普通人最容易上手的副业 1 拍游戏视频 既然大家这么喜欢玩游戏 那就把平时刷视频的
  • layui的layer弹出层和form表单

    参考文献 含代码 http www shagua wiki project 3 p 113
  • 【Git】如何在Vscode中使用码云(Gitee)实现远程代码仓库与本地同步?(新手图文教程)

    一 安装git 直接参照下面的链接就OK Git Git的下载 安装与配置教程 图文 敦厚的曹操的博客 CSDN博客 git下载教程 Git Git的下载与安装教程 图文https blog csdn net dxnn520 article
  • 高防CDN和高防IP防护的不同之处

    网站的运行离不开服务器 服务器在使用的过程中不可避免的会遇到一些攻击 需要做好相应的安全防护 那么 在安全防护上 服务器使用CDN与高防IP具体有什么不同之处呢 一 IP数量 CDN是一组ip的防护 是共享的ip 高防ip独享的ip防护 二
  • 2021-10-17 stm32f103 睡眠模式唤醒

    1 开启 睡眠时钟 2 打开 WFI 3 GPIO 1 GPIO内部电路图 下面转载 https blog csdn net xiewenhao12 article details 89030398 1 根据设备原理图查看IO外部引脚连接电
  • 13.108.Spark 优化、Spark优化与hive的区别、SparkSQL启动参数调优、四川任务优化实践:执行效率提升50%以上

    13 108 Spark 优化 1 1 25 Spark优化与hive的区别 1 1 26 SparkSQL启动参数调优 1 1 27 四川任务优化实践 执行效率提升50 以上 13 108 Spark 优化 1 1 25 Spark优化与
  • pluto实现分析(5)

    本文档的Copyleft归yfydz所有 使用GPL发布 可以自由拷贝 转载 转载时请保持文档的完整性 严禁用于任何商业用途 msn yfydz no1 hotmail com 来源 http yfydz cublog cn 7 内核接口
  • ABAP 发邮件(三)

    转自http blog sina com cn s blog 7c7b16000101bnxk html SAP ABAP 发邮件方法三 OO Report ZSENDEMAIL08 REPORT zsendemail08 CONSTANT
  • R:数据对象及类型

    数据对象 R语言创建和控制的实体被称为对象 object 它们可以说变量 数组 字符串 函数或者其它通过这些实体定义的更一般的结构 structures 在R语言里 对象是通过名字创建和保存的 R对象的名称必须以一个英文字母打头 并由一串大
  • 【Vue】动态监听localStorage或sessionStorage中数据的变化:

    1 需求 一个页面数据变化要改变另一个页面 甚至整个项目的数据变化 2 在main js中 description 监听本地储存的值变化 param number type 1 localStorage 2 sessionStorage p