vue项目中监听sessionStorage值发生变化

摘要:
首先在main.js中给Vue.protorype注册一个全局方法,其中,我们约定好了想要监听的sessionStorage的key值为’watchStorage’,然后创建一个StorageEvent方法,当我在执行sessionStorage.setItem(k,val)这句话的时候,初始化事件,并派发事件。1Vue.prototype.resetSetItem=function(key,ne

首先在main.js中给Vue.protorype注册一个全局方法,

其中,我们约定好了想要监听的sessionStorage的key值为’watchStorage’,

然后创建一个StorageEvent方法,当我在执行sessionStorage.setItem(k, val)这句话的时候,初始化事件,并派发事件。

1 Vue.prototype.resetSetItem = function(key, newVal) {
2    if (key === 'watchStorage') {
3 
4        //创建一个StorageEvent事件
5        var newStorageEvent = document.createEvent('StorageEvent');
6        const storage ={
7            setItem: function(k, val) {
8 sessionStorage.setItem(k, val);
9 
10                //初始化创建的事件
11                newStorageEvent.initStorageEvent('setItem', false, false, k, null, val, null, null);
12 
13                //派发对象
14 window.dispatchEvent(newStorageEvent)
15 }
16 }
17        returnstorage.setItem(key, newVal);
18 }
19 }
1 如何触发
2 在一个路由(比如路由A)存储值得时候,使用下面的方法:
3 this.resetSetItem('watchStorage', 11111);
1 如何监听
2 如果在另外一个路由(比如路由B)中,我们想根据watchStorage的变化来请求接口刷新页面数据的时候,可以在这个路由中created钩子函数中监听:
3 window.addEventListener('setItem', ()=>{
4     this.newVal = sessionStorage.getItem('watchStorage');
5 })
6 ————————————————

免责声明:文章转载自《vue项目中监听sessionStorage值发生变化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇POI导出excel模板三种方式相比同为开源框架的uniapp和flutter未来生态前景大对比下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

VUE 进阶

4. 通过axios实现数据请求vue.js默认没有提供ajax功能的。 所以使用vue的时候,一般都会使用axios的插件来实现ajax与后端服务器的数据交互。 注意,axios本质上就是javascript的ajax封装,所以会被同源策略限制。 下载地址: https://unpkg.com/axios@0.18.0/dist/axios.js ht...

gin是怎么传参数

gin 源码阅读系列文章列表: gin 源码阅读(1) - gin 与 net/http 的关系gin 源码阅读(2) - http请求是如何流入gin的?gin 源码阅读(3) - gin 路由的实现剖析 hi,大家好,我是 haohongfan。 通过 gin 的路由,已经把请求分配到具体的函数里面里面了,下面就要开始处理具体的业务逻辑了。 这里就进入...

第六章 前端开发——Vue框架

第六章 前端开发学习——Vue框架 一、Vue介绍 二、Vue实例 三、Vue视图 四、Vue组件 五、Vue过度动画 一、Vue介绍 1.前端框架介绍 A)前端框架有 React      Facebook Angular   Google Vue         全世界 B)Angular、Vue、React的区别 Vue与React React...

vue自学小demo----前端

vue学习的小demo,实现简单的页面项目的增删 代码如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue</title> <script src="./vue.js">...

vue 内联样式style中的background

转载:点击查看原文 在我们使用vue开发的时候 有很多时候我们需要用到背景图(特别是这个背景图是变量时) 这个时候会直接使用 内联样式 直接把你拿到的数据拼接上去 注意 在vue中直接使用style时 花括号一定别忘记 还有就是你的url一定要加引号拼接 :style = ' { backgroundImage : " url ( " + item.i...

linux 7 添加永久路由方法

linux 7 添加永久路由 用route命令添加 仅仅是当前状态下生效,一旦重启就会失效。 所以要在/etc/sysconfig/network-scripts/这个路径下添加一个文件route-{网卡名,例:eth0} 用vi 对这个文件进行编辑,在这里添加路由,然后systemctl restart network即可使路由生效 例:172.16.1...