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 表格排序和表头浮动效果(扩展SortTable)
Apr 07 Javascript
Javascript new关键字的玄机 以及其它
Aug 25 Javascript
Jquery封装tab自动切换效果的具体实现
Jul 13 Javascript
JQuery Highcharts 动态生成图表的方法
Nov 15 Javascript
js中的eventType事件及其浏览器支持性介绍
Nov 29 Javascript
js实现div层缓慢收缩与展开的方法
May 11 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
Jun 13 Javascript
如何提高Dom访问速度
Jan 05 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
Aug 16 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
Aug 21 Javascript
JS通用方法触发点击事件代码实例
Feb 17 Javascript
vue实现水波涟漪效果的点击反馈指令
May 31 Vue.js
解决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
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
php简单分页类实现方法
2015/02/26 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2013/10/24 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
AngularJS递归指令实现Tree View效果示例
2016/11/07 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
python编程使用协程并发的优缺点
2018/09/20 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
厨房工作人员岗位职责
2013/11/15 职场文书
产品开发计划书
2014/04/27 职场文书
幼儿园标语大全
2014/06/19 职场文书
超市促销活动总结
2014/07/01 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
社团个人总结范文
2015/03/05 职场文书
保护地球的宣传语
2015/07/13 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
2016幼儿园教师年度考核评语
2015/12/01 职场文书
Java使用JMeter进行高并发测试
2021/11/23 Java/Android