Vue現在のルーティングをリフレッシュする方法(2)

1293 ワード

これは前に使った方法で、空白のページをジャンプして戻る方法を使っています.現在のルートをリフレッシュすることもできますが、いくつかの欠陥があるVueが現在のルートをリフレッシュする方法です(1)ここでは新しい方法をお勧めします.究極の解決方法でしょう.provide/injectの組み合わせで原理を実現する:1つの祖先コンポーネントがそのすべての子孫子孫に依存を注入することを許可し、コンポーネントの階層がどれだけ深くても、上下流関係が成立する時間の中で常に有効である.App.vueでは、reloadメソッドが宣言され、router-viewの表示または非表示を制御し、ページの再ロードを制御する.



export default {
  name: 'App',
  provide () {
    return {
      reload: this.reload
    }
  },
  data () {
    return {
      isRouterAlive: true
    }
  },
  methods: {
    reload () {
      this.isRouterAlive = false
      this.$nextTick(function () {
        this.isRouterAlive = true
      })
    }
  }
}


更新が必要なページにあります.ページインジェクションApp.vueコンポーネント提供(provide)のreload依存は、論理完了後(削除または追加...)、直接this.reload()呼び出しにより、現在のページをリフレッシュすることができる.reloadをアセンブリ内に注入する方法

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


その後、リフレッシュが必要なときにthis.reload()メソッドを呼び出します.
Vue現在のルーティングをリフレッシュする方法(1)