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中的sortable排序之后的保存状态的解决方法
Jan 28 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
Aug 18 Javascript
关闭页面window.location事件未执行的原因及解决方法
Sep 01 Javascript
jQuery实现hover合成事件的方法
Aug 06 Javascript
基于WebUploader的文件上传js插件
Aug 19 Javascript
AngularJS指令中的绑定策略实例分析
Dec 14 Javascript
JavaScript实现Fly Bird小游戏
Dec 15 Javascript
jQuery实现的手风琴侧边菜单效果
Mar 29 jQuery
详解webpack4升级指南以及从webpack3.x迁移
Jun 12 Javascript
JavaScript this绑定过程深入详解
Dec 07 Javascript
Vue.js自定义指令学习使用详解
Oct 19 Javascript
js实现自动播放匀速轮播图
Feb 06 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
建立动态的WML站点(二)
2006/10/09 PHP
PHP完整的日历类(CLASS)
2006/11/27 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
中专毕业生自荐信
2013/11/16 职场文书
大学毕业感言100字
2014/02/03 职场文书
后备干部考察材料
2014/02/12 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
晚会开幕词
2015/01/28 职场文书
表扬信范文
2019/04/22 职场文书
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL
2022微信温控新功能上线
2022/05/09 数码科技