Vue 刷新当前路由的实现代码


Posted in Javascript onSeptember 26, 2019

前言

开发项目的时候突然接到了这个需求,实验过后,解决方法也蛮多种,下面就讲下常规的几种方案

1.改变router-view中的key值

通过改变 router-view 中的 key 值,来达到刷新组件的目的

<router-view :key="activeDate"></router-view>

this.activeDate = new Date()

2.给 router-view 标签添加 v-if

通过 $nextTick() ,协助实现。先把 <router-view /> 移除,移除后再重新添加,达到刷新当前页面的功能。

<router-link :to="url" @click.native="refresh">页面1</router-link>
<router-view v-if="flag"/>

<script>
export default {
  data () {
    return {
      flag: true 
    }
  },
  methods: {
   refresh() {
     this.flag= false // 通过v-if移除router-view节点
     this.$nextTick(() => {
       this.flag= true // DOM更新后再通过v-if添加router-view节点
     })
    }
  }
}
</script>

3.新建空白页,也是种不错的方案

refresh.vue //新建页面
<script>
  export default {
    beforeRouteEnter(to, from, next) {
      next(vm => {
        vm.$router.replace(from.path)
      })
    }
  }
</script>

demo.vue //然后在需要的页面调用
this.$router.replace({
   path: '/refresh',
   query: {
     t: Date.now()
    }
})

4.query传值 watch监听页面$route变化然后更新

5.provide / inject 组合

6.取巧的办法 <router-view ref="chartView"></router-view>

定义ref,然后调用相对应的方法,最好给每个页面都提供相同的方法

this.$refs.chartView.refresh()

就解决了点击当前路由没有刷新的问题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 蒙版进度条(结合图片)
Mar 10 Javascript
给ListBox添加双击事件示例代码
Dec 02 Javascript
javascript模拟post提交隐藏地址栏的参数
Sep 03 Javascript
JavaScript学习心得之概述
Jan 20 Javascript
js实现大转盘抽奖游戏实例
Jun 24 Javascript
JS实现的左侧竖向滑动菜单效果代码
Oct 19 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
Nov 16 Javascript
javascript拖拽效果延伸学习
Apr 04 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
Apr 26 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
Oct 27 Javascript
在bootstrap中实现轮播图实例代码
Jun 11 Javascript
原生js实现无缝轮播图效果
Jan 28 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
Sep 26 #Javascript
浅谈Layui的eleTree树式选择器使用方法
Sep 25 #Javascript
layui禁用侧边导航栏点击事件的解决方法
Sep 25 #Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 #Javascript
关于layui导航栏不展示下拉列表的解决方法
Sep 25 #Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
Sep 25 #Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
Sep 25 #Javascript
You might like
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
iOS10推送通知开发教程
2016/09/19 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
JS自调用匿名函数具体实现
2014/02/11 Javascript
js调用后台、后台调用前台等方法总结
2014/04/17 Javascript
js星星评分效果
2014/07/24 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
JS实现网页烟花动画效果
2020/03/10 Javascript
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
python中count函数简单用法
2020/01/05 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
2020/03/24 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
python开发前景如何
2020/06/11 Python
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
上课迟到检讨书
2014/02/19 职场文书
医德医风自我评价2015
2015/03/03 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang