Do we have router.reload in vue-router? Ask Question

Do we have router.reload in vue-router? Ask Question

I see in this pull request:

  • Add a router.reload()

    Reload with current path and call data hook again

But when I try issuing the following command from a Vue component:

this.$router.reload()

I get this error:

Uncaught TypeError: this.$router.reload is not a function

I searched in the ドキュメント、関連するものは見つかりませんでした。vue/vue-router はこのような機能を提供していますか?

私が興味を持っているソフトウェアのバージョンは次のとおりです。

"vue": "^2.1.0",
"vue-router": "^2.0.3",

PS.location.reload()代替手段の 1 つであることはわかっていますが、ネイティブの Vue オプションを探しています。

ベストアンサー1

this.$router.go()まさにこれを実行します。引数が指定されていない場合、ルータは現在の場所に移動し、ページを更新します。

注記: 現在のルーターの実装そしてその歴史の構成要素パラメータをオプションとしてマークしないでください。しかし、私の意見では、これはバグかEvan You側の省略のどちらかです。仕様では明示的に許可されている私はそれについて問題報告を提出しました。現在のTSアノテーションに本当に関心がある場合は、同等のものを使用してください。this.$router.go(0)

「なぜそうなるのか」については、go内部的に引数を に渡すのでwindow.history.go、 は と等しくなりwindows.history.go()、次にページが再読み込みされます。MDNドキュメント

注意: これは通常のデスクトップ版(非ポータブル版)のFirefoxで「ソフト」リロードを実行するため、これを使用すると奇妙な挙動がいくつか現れる可能性がありますが、実際には真のリロードが必要です。window.location.reload(true);(https://developer.mozilla.org/en-US/docs/Web/API/Location/reload) が代わりに役立つかもしれません - それは確かに FF での私の問題を解決しました。

おすすめ記事