vue:app.vue中添加监听beforeunload事件,即当浏览器窗口关闭或刷新时删除vuex中的数据

摘要:
打开页面时,添加事件侦听,即侦听关闭页面时触发的beforeupload事件。也就是说,当页面关闭时,将手动删除localStorage中的数据。当我们离开此页面时,将调用被破坏的函数。2.当窗口、文档及其资源即将卸载时,将触发beforeunload事件。12) 3. 当使用form.submit()提交表单时,localStorage永久存储localStorage和sessionStorage属性,允许将键/值对的数据存储在浏览器中。

当打开页面时,添加事件监听,即监听beforeunload事件,beforeunload事件在关闭页面时触发。即当关闭页面时,手动删除localStorage中的数据。

app.vue中的代码如下:

<template>
  <div id="app">
    <router-view />
  </div>
</template>

<script>
export default {
  name: "app",
  created() {
    window.addEventListener("`beforeunload`", () => {
      localStorage.removeItem("store");
      localStorage.setItem("store", JSON.stringify(this.$store.state));
    });
  },
  destroyed() {
    localStorage.removeItem("store");
  }
};
</script>

 相关知识点如下:

1、vue实例的生命周期

每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。比如created钩子可以用来在一个实例被创建之后执行代码

也有一些其它的钩子,在实例生命周期的不同阶段被调用,如mounted和destroyed。生命周期钩子的 this 上下文指向调用它的 Vue 实例。

当我们离开这个页面的时候,便会调用destroyed函数

vue:app.vue中添加监听beforeunload事件,即当浏览器窗口关闭或刷新时删除vuex中的数据第1张

二、beforeunload事件

当窗口,文档及其资源即将卸载时,将触发该事件。

语法

//通用
window.onbeforeunload = function (event) {};
//IE9+
window.addEventListener("beforeunload", function (event) {});

事件触发场景

1)、关闭浏览器窗口

2)、通过地址栏或收藏夹前往其他页面的时候

3)、点击返回,前进,刷新,主页其中一个的时候

4)、点击 一个前往其他页面的url连接的时候

5)、使用document.write() 方法(输出内容)

6)、使用document.open() 打开一个新的空白文档

7)、使用document.close() 方法可关闭一个由open()方法打开的输出流,并显示选定的数据。

8)、当使用window.open() 打开一个页面,并把本页的window的名字传给要打开的页面的时候。

9)、使用window.close() 关闭页面的时候

10)、重新赋予window.location.href的值的时候。

11)、通过input type=”submit”按钮提交一个具有指定action的表单的时候。

12)、使用form.submit() 提交表单的时候

三、localStorage永久存储

localStorage 和 sessionStorage 属性允许在浏览器中存储 key/value 对的数据。

localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除。

免责声明:文章转载自《vue:app.vue中添加监听beforeunload事件,即当浏览器窗口关闭或刷新时删除vuex中的数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇nginx在mac下的安装与基本操作Linux dd工具磁盘读写测试分析下篇

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

相关文章

Guideline 5.2.1

      最近在上架公司公司项目的时候遇到这个问题什么5.2.1 然后去了解发现最近不少人都遇到了这个问题.先说一下 我上架的APP是一个医疗的APP然后说需要什么医疗资质,估计是账号的公司资质不够吧。后面和苹果电话,对方要求提供医院相关的医疗资质,公司都没和医院合作当然无法提供医疗资质了,然后和苹果交流,告诉对方我们的APP只提供健康咨询,健康问诊,不...

vue 点击图片获取x,y坐标值

点击图片拿到x,y值 template中 <image x="0"y="0"width="100%"height="100%"xlink:href="../../assets/images/background/bg_nav.png"@click="tapMap($event)" /> js中 tapMap(e) { //cons...

连载:面向对象葵花宝典:思想、技巧与实践(1)

史前时代:面向机器 最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数据。简单来说,就是直接编写0和1的序列来代表程序语言。例如:使用0000 代表 加载(LOAD),0001 代表 存储(STORE)等。  机器语言由机器直接执行,速度快,但一个很明显的缺点就是:写起来实在是太困难了,一旦你发现自己写错了,改起来...

vue v-model 的注意点

在使用表单元素 input 的 v-model 指令时,碰到一个问题: 如上图,修改 input 的内容,以便随时显示;但显示时明显慢一步。 <template> <div> <input type="text" v-model="obj.val" @keyup="onUpdate"> <sp...

Win10系统的SurfacePro4如何重装系统-1 SurfacePro专用的PE

下载SurfacePro专用的PE(普通的PE可能不支持触摸屏操作,甚至没法启动Surface,所以务必要重新制作PE),下面提供百度云下载地址,下载之后,双击EXE,会进行检测 链接:https://pan.baidu.com/s/1RHK8EUaLzoPnNfRyH9ZrLg 密码:owno   然后进入下面的窗口,选择目标优盘,所有参数都是默...

Frp内网穿透安装教程#Frpc OpenWrt客户端安装#图形化管理

本文转自:https://blog.csdn.net/sugoods/article/details/108839840 注意事项:在OpenWrt环境下,一定要先安装frpc客户端再安装图形操作界面 luci-app-frpc,要不就会出问题。不要问我怎么知道的,反正按着我的步骤装就好。 一、路由器安装Frp客户端Frpc,按下面的操作步骤。目前最新版本...