Vue 刷新当前路由方法

Vue 刷新当前路由方法问题描述:vue子组件上传图片,上传成功想刷新整个父组件。解决方案:一、一种方法,但是有bug在网上看到了一种方法:试过之后感觉有bug。第一次刷新返回到上个界面了,第二次第三次有是正常的。letNewPage=”_empty”+”?time=”+newDate().getTime()/500;this.$router.push(NewPage);this.$router.go(-1);整体意思是:图片上传成功后,先跳转到一个新界面,然后回退到当前界面。就实现了刷新。但

大家好,欢迎来到IT知识分享网。

问题描述:vue子组件上传图片,上传成功想刷新整个父组件。

解决方案:

一、一种方法,但是有bug

在网上看到了一种方法:试过之后感觉有bug。第一次刷新返回到上个界面了,第二次第三次有是正常的。

let NewPage = "_empty" + "?time=" + new Date().getTime() / 500;
this.$router.push(NewPage);
this.$router.go(-1);

在这里插入图片描述
整体意思是:图片上传成功后,先跳转到一个新界面,然后回退到当前界面。就实现了刷新。但实际应用似乎是有些问题

二、于是又找了一种方法

this.$router.replace({path: ‘/refresh’});
在这里插入图片描述

新建一个refresh.vue
// 空页面,负责中转到目标页面

<template>
  <div></div>
</template>
 
<script>
export default {
  name: 'refresh',
  data () {
    return {
    }
  },
  beforeRouteEnter (to, from, next) {
    next(vm => {
      vm.$router.replace(from.path)
    })
  }
}
 
</script>
<style scoped>
</style>

from.path为需要刷新页面的地址。
为什么要用replace而不用push呢,因为push假如刷新成功后点返回会回到refresh页面,replace可以避免这个问题。
在router/index.js添加这个路由
在这里插入图片描述

{
        path: '/refresh', 
        name: 'refresh',
        component: () =>
            import('../view/my-online/refresh.vue'),
        meta: { title: '刷新界面' }
    },

就实现了当前界面的刷新工作。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/10967.html

(0)
上一篇 2024-03-26 20:00
下一篇 2024-03-27 19:26

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信