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 传统事件模型构造的事件监听器实现代码
May 31 Javascript
json格式的时间显示为正常年月日的方法
Sep 08 Javascript
JavaScript结合AJAX_stream实现流式显示
Jan 08 Javascript
jQuery实现设置、移除文本框默认值功能
Jan 13 Javascript
js实现遮罩层弹出框的方法
Jan 15 Javascript
javascript ES6 新增了let命令使用介绍
Jul 07 Javascript
vue-quill-editor富文本编辑器简单使用方法
Sep 21 Javascript
electron 安装,调试,打包的具体使用
Nov 06 Javascript
vue与iframe之间的信息交互的实现
Apr 08 Javascript
JavaScript冒泡算法原理与实现方法深入理解
Jun 04 Javascript
js用正则表达式筛选年月日的实例方法
Jan 04 Javascript
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 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实现Session存储到Redis
2015/11/11 PHP
Laravel中注册Facades的步骤详解
2016/03/16 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
js使用递归解析xml
2014/12/12 Javascript
JavaScript中的比较操作符>、=、
2014/12/31 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
vue实现文件上传读取及下载功能
2020/11/17 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
python实现文件路径和url相互转换的方法
2015/07/06 Python
python实现将内容分行输出
2015/11/05 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
农村婚礼证婚词
2014/01/10 职场文书
小学数学教学反思
2014/02/02 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
离职感谢信怎么写
2015/01/22 职场文书
食品质检员岗位职责
2015/04/08 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle