vue在App.vue文件中监听路由变化刷新页面操作


Posted in Javascript onAugust 14, 2020

在路由跳转时,会出现页面需要重新刷新一遍才能获取数据加载页面,这时添加一个监听器,如果跳转到页面刷新一次。

export default {
 name: 'App',
 provide(){
 return{
  reload:this.reload
 }
 },
 data(){
 return {
  isRouterAlive:true,
 }
 },
 //监听器
 watch: {
 // 方法1
 '$route' (to, from) { //监听路由是否变化
  // console.log(999)
  if(to.path == "/"){ //跳转到哪个页面
  location.reload()
  }
 },
 },
 methods:{
 reload(){
  this.isRouterAlive = false;
  this.$nextTick(function () {
  this.isRouterAlive = true
  });
 },
 },
}

补充知识:vue监听路由的改变和监听页面的刷新与离开

要分清两者的区别。

首先是监听页面的刷新与离开,此时相当于直接在这个网页中按了刷新,如果是webapp则是离开这个app而不是切换路由!

如果是用js的特性监测,则是不仅可以页面的刷新与离开,还能切换路由。注意当keepalive时即使切换了路由也无效。

在script中直接增加监听器监视beforeunload:

//监视如果页面离开
    created() {
      window.addEventListener('beforeunload', this.updateHandler)
    },
    beforeDestroy() {
      this.finalItemDetail(); // 自己要进行的操作
    },
    destroyed() {
      window.removeEventListener('beforeunload', this.updateHandler)
    },

然后methods中添加finalItemDetail和updateHandler方法:

updateHandler() {
        this.finalItemDetail()
      },
      finalItemDetail() {
        console.log('刷新或关闭');
      },

如果想监听某个特定的页面的离开,比如我现在在/index下,现在去了/index/001下面,就可以在watch中监听路由的变化,前提是实用vue-router。

如果是简单的判断路由变化可以用注释掉的,直接执行clear方法(自己定义在methods中)

但是注意这个只能监听自己子路由的变化!

watch: {
      // 如果路由有变化,会再次执行clear方法
      // "$route": "clear",
      $route(to , from){
        console.log( to.path, from.path );
        this.clear(to.path);
      }
    },

然后我还额外做了个判断:

clear(path) {
        if(path!="/item/item01/evaluate")
          console.log("从这个页面离开了");
        this. active=0;
      },

以上这篇vue在App.vue文件中监听路由变化刷新页面操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js资料prototype 属性
Mar 13 Javascript
推荐dojo学习笔记
Mar 24 Javascript
JavaScript的public、private和privileged模式
Dec 28 Javascript
JS复制到剪贴板示例代码
Oct 30 Javascript
使用vue.js开发时一些注意事项
Apr 27 Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 Javascript
JavaScript SHA1加密算法实现详细代码
Oct 06 Javascript
Angular2库初探
Mar 01 Javascript
详解iframe跨域的几种常用方法(小结)
Apr 29 Javascript
vue项目添加多页面配置的步骤详解
May 22 Javascript
vscode中Vue别名路径提示的实现
Jul 31 Javascript
JavaScript嵌入百度地图API的最详细方法
Apr 16 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
Aug 14 #Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 #Javascript
JS+css3实现幻灯片轮播图
Aug 14 #Javascript
浅谈vue获得后台数据无法显示到table上面的坑
Aug 13 #Javascript
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 #Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
Aug 13 #Javascript
vue用elementui写form表单时,在label里添加空格操作
Aug 13 #Javascript
You might like
mysql5详细安装教程
2007/01/15 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
jquery的相对父元素和相对文档定位示例代码
2013/08/02 Javascript
Jquery遍历节点的方法小集
2014/01/22 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
2016/06/12 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
vue 表单验证按钮事件交由父组件触发的方法
2018/12/17 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
Python函数参数类型*、**的区别
2015/04/11 Python
浅谈编码,解码,乱码的问题
2016/12/30 Python
Python的多维空数组赋值方法
2018/04/13 Python
Python读写docx文件的方法
2018/05/08 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
python导入pandas具体步骤方法
2019/06/23 Python
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
物业电工岗位职责
2013/11/20 职场文书
庆七一活动总结
2014/08/27 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
股权转让协议书
2014/12/07 职场文书
人事主管岗位职责
2015/02/04 职场文书
OpenCV实现普通阈值
2021/11/17 Java/Android
mysql查找连续出现n次以上的数字
2022/05/11 MySQL