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 相关文章推荐
在JavaScript中实现命名空间
Nov 23 Javascript
javascript使用activex控件的代码
Jan 27 Javascript
jQuery中[attribute*=value]选择器用法实例
Dec 31 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
Aug 11 Javascript
jQuery 3.0 的 setter和getter 模式详解
Jul 11 Javascript
微信小程序 开发指南详解
Sep 27 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
Feb 22 Javascript
node实现定时发送邮件的示例代码
Aug 26 Javascript
vue 组件中slot插口的具体用法
Apr 03 Javascript
微信小程序项目实践之验证码倒计时功能
Jul 18 Javascript
js实现树形数据转成扁平数据的方法示例
Feb 27 Javascript
jquery实现手风琴案例
May 04 jQuery
解决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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
mysql 全文搜索 技巧
2007/04/27 PHP
php 文件上传系统手记
2009/10/26 PHP
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
php函数之子字符串替换 str_replace
2011/03/23 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
JavaScript操作URL的相关内容集锦
2015/10/29 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
Python中的下划线详解
2015/06/24 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
Django实现组合搜索的方法示例
2018/01/23 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
韩国11街:11STREET
2018/03/27 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
国际商务专业学生个人的自我评价
2013/09/28 职场文书
反腐倡廉标语
2014/06/24 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
2014年管理工作总结
2014/11/22 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书