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 相关文章推荐
js中函数调用的两种常用方法使用介绍
Jul 17 Javascript
js实现显示当前状态的导航效果代码
Aug 28 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
Apr 18 Javascript
Javascript中的 “&” 和 “|” 详解
Feb 02 Javascript
angular实现spa单页面应用实例
Jul 10 Javascript
在 Node.js 中使用 async 函数的方法
Nov 17 Javascript
vue实现nav导航栏的方法
Dec 13 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
Apr 11 Javascript
JS引用传递与值传递的区别与用法分析
Jun 01 Javascript
iview Upload组件多个文件上传的示例代码
Sep 30 Javascript
微信网页登录逻辑与实现方法
Apr 29 Javascript
微信小程序中如何使用flyio封装网络请求
Jul 03 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 JSON中文乱码的解决方法详解
2013/06/06 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
python BeautifulSoup使用方法详解
2013/11/21 Python
Python字典简介以及用法详解
2016/11/15 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
如何利用python制作时间戳转换工具详解
2018/09/12 Python
python实现桌面壁纸切换功能
2019/01/21 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
详解python中GPU版本的opencv常用方法介绍
2020/07/24 Python
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
初婚未育未抱养证明
2014/01/12 职场文书
技术负责人任命书
2014/06/05 职场文书
保护环境标语
2014/06/09 职场文书
节能环保口号
2014/06/12 职场文书
材料专业大学毕业生自荐书
2014/07/02 职场文书
《称赞》教学反思
2016/02/17 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python