vueページ全体のリフレッシュを実現


ページ全体をリフレッシュする必要があります.this.$router.go(0)とlocation.reload()は、この2つの方法でページ全体のリフレッシュを実現することができますが、ページに短い空白が発生する現象をもたらすため、必要に応じてvueの方法で空白のないリフレッシュを実現することができます.まずAppでvueではrouter-viewを構成する操作について、以下のようにします.
Provide injectのプロパティを利用して、必要な場所でこのメソッドを呼び出せばいいです.
<template>
  <div id="app">
    <router-view v-if="isRouterAlive" />
  </div>
</template>

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

<style></style>
  • その後、特定のページにinject構成を追加します.具体的には、
  • です.
    export default {
         
      inject: ['reload'],
      methods: {
         
        reloadPage() {
         
          if (this.request === 2) {
         
            this.reload();
          }
        },
       },
      }