vue刷新页面

需求

新建和编辑都在同一个页面,当新建完成之后,弹出提示并刷新页面,获取后台的数据并在页面回显,当再次点击保存时,向后台多传一个参数ID。

解决方式

方式一、最简单的方式

无论是标签方式的跳转还是js方式的跳转都可以
加一个参数时间戳,同时监听路由变化,重新调用所有方法

query:{ time: new Date().getTime() }
watch:{
  $route(to,from){
    this.reload()
  }
},

方式二

重新加载页面,会有短暂的空白,用户体验不好

window.location.reload()
this.$router.go(0)

方式三

新建一个空白文件,先跳转空白页,再跳转回来。地址栏会有短暂的切换,但没什么影响。

需要刷新的页面

this.$router.replace({
  path: '/white'
});

空白页面

export default {
    name: "white",
    data () {
      this.$router.replace({
        path: '/index'
      })
      return {}
    }
}

方式四

重新渲染<router-view></router-view>

provide:全局注册方法;

inject:子组件引用 provide 注册的方法;

App.vue

<template>
  <div id="app">
    <router-view v-if="isReload"></router-view>
  </div>
</template>

<script>
    export default {
      name: "App",
      provide () {
        return {
          reload: this.reload
        }
      },
      data () {
        return {
          isReload: true
        }
      },
      methods: {
        reload () {
          this.isReload = false
          this.$nextTick(() => {
            this.isReload = true
          })
        }
      }
    }
</script>

需要刷新的页面

inject: ['reload'],
data () {
  return {

  }
},
methods: {
  refresh () {
    this.reload()
  }
},

网站导航

网站导航

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • vue刷新页面空白分两种情况: 1.在history模式下的404空白 2.在history模式下存在多级路由时,...
    luckynk阅读 15,263评论 4 4
  • vue-cli搭建项目 确保安装了node与npm 再目标文件夹下打开终端 执行cnpm i vue-cli -g...
    Akiko_秋子阅读 3,281评论 1 22
  • 《越来越远的人情味》 越来越远的人情味 越来越清的你我她 相识相知再到陌生 需要多久多少光阴 交了朋友忘记友谊 为...
    葉威阅读 381评论 0 0
  • 白日忙罢晚归家,金水河岸,有垂柳斜斜。夕阳残照两行绿,映衬这一树桃花。 风吹皱一池春水,细雨如丝,信步闲庭下。忽闻...
    鴟鴺子皮阅读 222评论 0 2
  • 放假时,闲着没事,心血来潮,突然想画一下鹅卵石画。自己照着图片画了一个。本来只想试一试的,结果出乎意料,自我感觉十...
    闪闪发光的一只鱼阅读 285评论 5 4