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实例教程(19) 使用HoTMetal(3)
Dec 23 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
Jan 24 Javascript
jquery数组之存放checkbox全选值示例代码
Dec 20 Javascript
jQuery自定义添加"$"与解决"$"冲突的方法
Jan 19 Javascript
基于Phantomjs生成PDF的实现方法
Nov 07 Javascript
angularjs之$timeout指令详解
Jun 13 Javascript
AngularJS中的路由使用及实现代码
Oct 09 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
Oct 30 Javascript
微信小程序使用map组件实现解析经纬度功能示例
Jan 22 Javascript
了解重排与重绘
May 29 Javascript
js实现页面多个日期时间倒计时效果
Jun 20 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
Sep 21 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
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
jquery插件制作 手风琴Panel效果实现
2012/08/17 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
js+css实现全屏侧边栏
2020/06/16 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
Python 的 Socket 编程
2015/03/24 Python
python中enumerate函数遍历元素用法分析
2016/03/11 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
技术岗位竞聘演讲稿
2014/05/16 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
婚前财产协议书范本
2014/10/19 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
售后前台接待岗位职责
2015/04/03 职场文书