执行完某个动作,需要刷新页面,重新渲染页面

303 阅读1分钟

1、原始方法

location.reload

2、vue自带的路由跳转

this.$router.go(0)

第一种和第二种都是强制刷新页面,会出现短暂的闪烁,用户体验不好

3、在项目的app.vue

<template>
  <div id="main">
    <router-view v-if="isRouterAlive"></router-view>
  </div>
</template>
<script>
  export default {
    provide() {
      return {
        reload: this.reload
      }
    },
    data() {
      return {
        isRouterAlive: true
      }
    },
    methods: {
      reload() {
        this.isRouterAlive = false
        this.$nextTick(function() {
          this.isRouterAlive = true
        })
      }
    }
  }
</script>

在需要刷新页面的组件里

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

在需要刷新的代码块里使用 this.reload()