出现这个问题的起因:在一个VUE页面中,引入两个组件,A组件实现基础信息展示,B组件展示列表,我要通过A组件的一个按钮触发状态,然后B组件根据A组件触发的状态来做业务处理,首先想到的是把状态放在localStorage,接下去就是在B组件怎么监听A组件状态
解决方法:
1.首先在 main.js 中给 Vue.protorype 注册一个全局方法,然后创建一个 StorageEvent 方法,当我在执行sessionStorage.setItem(k, val) 的时候,初始化事件并派发事件。
/** * @description * @author (Set the text for this tag by adding docthis.authorName to your settings file.) * @date 2019-05-29 * @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); } }
还有一个简单封装监听localStorage
2.在A组件中调用——写入缓存
this.$addStorageEvent(2, "user_info", data);
或者
this.resetSetItem('watchStorage', jsonObj);
3.在B组件中监听
window.addEventListener('setItem', (e) => { console.log(e); });
或者
window.addEventListener('setItem', ()=> { this.newVal = sessionStorage.getItem('watchStorage'); var data=JSON.parse(this.newVal) console.log(data) })
以上就是vue 项目如何监听localStorage或sessionStorage的变化的详细内容,更多关于vue 项目监听localStorage或sessionStorage的资料请关注其它相关文章!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“vue项目如何监听localStorage或sessionStorage的变化”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
20240518
20240518
- 【爵士乐】VA-2024-SupremeLoungeChillSelectionJazzyVibeTunes(FLAC)
- 群星《承欢记 电视剧影视原声带》[FLAC/分轨][219.8MB]
- 群星《乘风2024 第1期》[320K/MP3][110.09MB]
- 群星《乘风2024 第1期》[FLAC/分轨][322.4MB]
- 【古典音乐】卡拉扬《莫扎特·魔笛(全剧)》2CD.2015[FLAC+CUE整轨]
- Yurika《ただいま》【Hi-Res】24bit-96kHz【flac】
- 张琍敏2006-金鼎奖系列14[台湾版]CD1[WAV+CUE]
- 林一峰2008-城市旅人[香港首版][WAV+CUE]
- 群星1990-六个梦电视原声带[日本版][WAV+CUE]
- [In-Akustik7801]KissedByASong-《Dynaudio丹拿发烧示范盘》(2014)HQCD[WAV+CUE]
- 群星《17号音乐仓库2 第10期》[320K/MP3][66.53MB]
- 群星《17号音乐仓库2 第10期》[FLAC/分轨][163.67MB]
- 宝丽金50周年《古典篇》3CD限定盘[低速原抓WAV+CUE][1.8G]
- 群星.1986-新格名曲精选-歌3【新格】【WAV+CUE】
- 【ABC唱片】徐刚《独步外滩SACD》ISO+WAV分轨