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+mapbar实现地图定位
Apr 09 Javascript
js控制分页打印、打印分页示例
Feb 08 Javascript
使用原生js写的一个简单slider
Apr 29 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
Oct 20 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
Nov 05 Javascript
js格式化时间的方法
Dec 18 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
Sep 06 Javascript
快速搭建React的环境步骤详解
Nov 06 Javascript
Node.js Buffer用法解读
May 18 Javascript
javascript实现摄像头拍照预览
Sep 30 Javascript
JS实现网页端猜数字小游戏
Mar 06 Javascript
基于javascript处理二进制图片流过程详解
Jun 08 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数组一对一替换实现代码
2012/08/31 PHP
PHP 类相关函数的使用详解
2013/05/10 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
JavaScript静态的动态
2006/09/18 Javascript
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
js 提交和设置表单的值
2008/12/19 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
python开发之thread实现布朗运动的方法
2015/11/11 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
python实现邮件自动发送
2019/08/10 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
Python matplotlib实时画图案例
2020/04/23 Python
Python控制台实现交互式环境执行
2020/06/09 Python
python和JavaScript哪个容易上手
2020/06/23 Python
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
中专毕业生自荐信
2013/11/16 职场文书
高中生家长寄语大全
2014/04/03 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
社区节水倡议书
2015/04/29 职场文书
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang
Tomcat配置访问日志和线程数
2022/05/06 Servers