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 相关文章推荐
jquery的选择器的使用技巧之如何选择input框
Sep 22 Javascript
javascript闭包入门示例
Apr 30 Javascript
Javascript基础学习笔记(菜鸟必看篇)
Jul 22 Javascript
AngularJS入门教程之AngularJS 模板
Aug 18 Javascript
原生js仿jquery一些常用方法(必看篇)
Sep 20 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
Nov 18 Javascript
巧用数组制作图片切换js代码
Nov 29 Javascript
微信小程序实现多宫格抽奖活动
Apr 15 Javascript
Vue的属性、方法、生命周期实例代码详解
Sep 17 Javascript
jQuery Datatables 动态列+跨列合并实现代码
Jan 30 jQuery
详解三种方式在React中解决绑定this的作用域问题并传参
Aug 18 Javascript
微信小程序实现点赞业务
Feb 10 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
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
2015/09/23 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
js function定义函数使用心得
2010/04/15 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
vue中添加mp3音频文件的方法
2018/03/02 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
node.js通过url读取文件
2020/10/16 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
django框架模板语言使用方法详解
2019/07/18 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
公司领导班子对照检查材料
2014/09/24 职场文书
工作收入住址证明
2014/10/28 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers