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方法调用括号的问题探讨
Jan 24 Javascript
jQuery实现下拉框左右选择的简单实例
Feb 22 Javascript
jQuery带箭头提示框tooltips插件集锦
Nov 17 Javascript
jQuery实现视频作为全屏幕背景
Dec 18 Javascript
js生成验证码并直接在前端判断
May 15 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
Jun 12 Javascript
通过javascript进行UTF-8编码的实现方法
Jun 27 Javascript
JS简单实现仿百度控制台输出信息效果
Sep 04 Javascript
浅谈PDF.js使用心得
Jun 07 Javascript
微信小程序实现折叠与展开文章功能
Jun 12 Javascript
深入理解JavaScript的值传递和引用传递
Oct 24 Javascript
JS实现放大镜效果
Sep 21 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 setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
一个简单的js动画效果代码
2010/07/20 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
简述jQuery ajax的执行顺序
2016/01/05 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
JavaScript实现多球运动效果
2020/09/07 Javascript
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
python将list转为matrix的方法
2018/12/12 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
绩效管理实施方案
2014/03/19 职场文书
心理学专业求职信
2014/06/16 职场文书
会计专业自荐书
2014/07/08 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书