1. はじめにルーティングを使用して他のページにジャンプする場合、現在のページをキャッシュする必要があります。たとえば、リストページから詳細ページにジャンプする場合、リストのコンテンツをキャッシュする必要があり、スクロールバーの位置を保存する必要があります。場合によっては、キャッシュする必要があるページ内の一部のコンテンツがキャッシュされていないことがあります。つまり、さまざまな状況があります。次にいくつか例を示します。 vue2とvue3の使い方は異なります created() メソッドと mount() メソッドは、ページが初期化されるときに実行されます。ページがキャッシュされている場合、これら 2 つのメソッドは実行されません。また、ページがキャッシュされている場合、vue2 の destroy() メソッドと vue3 の unmounted() メソッドは実行されません。 activated() メソッドはページに入るたびに実行されます 2. 使用1. vue2とvue3の違いvue2: <テンプレート> <div id="nav"> <router-link to="/">ホーム</router-link> | <router-link to="/about">について</router-link> </div> <!-- vue2.x の設定 --> <キープアライブ> <router-view v-if="$route.meta.keepAlive" /> </キープアライブ> <ルータービュー v-if="!$route.meta.keepAlive"/> </テンプレート> vue3: <テンプレート> <div id="nav"> <router-link to="/">ホーム</router-link> | <router-link to="/about">について</router-link> </div> <!-- Vue3.0 構成コンポーネントの書き込みが修正されました --> <router-view v-slot="{ コンポーネント }"> <キープアライブ> <component :is="コンポーネント" v-if="$route.meta.keepAlive"/> </キープアライブ> <component :is="コンポーネント" v-if="!$route.meta.keepAlive"/> </ルータービュー> </テンプレート> route.js での構成: パス: '/'、 名前: 'ホーム'、 コンポーネント: ホーム、 メタ:{ キープアライブ: 真 } 効果: 2. ページ上の一部のデータはキャッシュする必要がないactivated() メソッドで部分的なリフレッシュを必要とするロジックを処理できます。 ... 部分的に更新する必要があるデータ: <input type="text" v-model="newStr" /> ... データ() { 戻る { 新しい文字列: "2", }; }, マウント() { console.log("マウントされたメソッドが実行されました"); this.newStr = "3"; }, アクティブ化() { console.log("actived メソッドが実行されました..."); this.newStr = "4"; } 効果: 3. keepAliveプロパティを動的に設定するvue ファイルで keepAlive プロパティを設定することもできます。これは beforeRouteEnter() メソッドに追加された場合にのみ有効です。つまり、ページに入るときに Home.vue に追加します。 // コンポーネントのガードを使用して、ページを離れるイベントで何かを実行します // to はリダイレクトされるルート、from は前のページのルートです beforeRouteEnter(to, from, next) { to.meta.keepAlive を true に設定します。 //ルートは next() にジャンプし続けます。 } 4. includeとexcludeを使用してキャッシュする必要があるコンポーネントを構成するapp.vue で設定します: <router-view v-slot="{ コンポーネント }"> <キープアライブを含める="testKA"> <コンポーネント:is="コンポーネント"/> </キープアライブ> </ルータービュー> そのうち、testKA はコンポーネントの名前に対応します。 エクスポートデフォルト{ name:'testKA', // キープアライブインクルード属性はコンポーネント名と一致する データ() {戻り値 {}}, アクティブ化() { // キープアライブキャッシュページのライフサイクルは、入力されるたびに実行されます}, } また、include の使用方法は次のとおりです。 <!-- カンマ区切りの文字列 --> <キープアライブを含める="a,b"> <コンポーネント:is="view"></コンポーネント> </キープアライブ> <!-- 正規表現 (`v-bind` を使用) --> <キープアライブ:include="/a|b/"> <コンポーネント :is="view"></コンポーネント> </キープアライブ> <!-- 配列 (`v-bind` を使用) --> <キープアライブ:include="['a', 'b']"> <コンポーネント :is="view"></コンポーネント> </キープアライブ> exclude の使用方法は include と同じで、キャッシュされないコンポーネントを表します。 5. 一部のページはキャッシュする必要があり、一部のページは更新する必要があります説明: 3 つのページ a、b、c がある場合、a->b、b でページが更新され、次に b->c、c->b、b でページは更新されず、次に b->a、a->b、b でページが更新されます。 6. キャッシュは第1レベルのルーティングでのみ有効ですセカンダリルートでキャッシュを使用する必要がある場合は、プライマリルートで同じ設定を行うことができます。 store.js コード: 州: { キープアライブ:[] }, 突然変異: SET_KEEP_ALIVE(状態、パラメータ) { state.keepAlives = パラメータ } }, ゲッター:{ キープアライブ:関数(状態){ state.keepAlivesを返す } } App.vue コード: <テンプレート> <div id="nav"> <router-link to="/bbb">BBB</router-link> | <router-link to="/home">ホーム</router-link> | <router-link to="/about">について</router-link> </div> <router-view v-slot="{ コンポーネント }"> <キープアライブ:include="keepAlive"> <コンポーネント:is="コンポーネント"/> </キープアライブ> </ルータービュー> </テンプレート> <スクリプト> エクスポートデフォルト{ 計算:{ キープアライブ(){ これを返します。$store.getters.keepAlive } } } </スクリプト> Home.vue コード: // コンポーネント内のガードを使用して、ページを離れるイベントで何かを実行します // to はリダイレクトされるルート、from は前のページのルートです beforeRouteEnter(to, from, next) { 次へ(vm=>{ if(from.path == "/bbb"){ vm.$store.commit("SET_KEEP_ALIVE",["ホーム"]) } }); }, beforeRouteLeave(to, from, next) { to.path == "/about"の場合{ console.log("/about ページにリダイレクトされます...") } それ以外 { console.log("/about 以外のページにリダイレクトされます...") this.$store.commit("SET_KEEP_ALIVE",[]) } // ルートは next() にジャンプし続けます。 } 効果: 要約するこれで、vue3 キャッシュ ページ キープアライブと統合ルーティング処理に関するこの記事は終了です。vue3 キャッシュ ページ キープアライブに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Dockerのデフォルトネットワークセグメントを変更する実装方法の分析
システム環境: Win10 64ビットMySQL バージョン: mysql-5.7.18-winX6...
Baota PanelのPHP7.3バージョンがZipArchiveをサポートしていないため、プログ...
ハイパーリンク。「リンク」とも呼ばれます。ハイパーリンクは、私たちが閲覧する Web ページのいたる...
1 はじめに優れたコーディング習慣は優れたプログラマーが備えるべき資質ですが、コードの品質を保証する...
目次1. 大文字と小文字の区別を決定するパラメータ2. パラメータ変更に関する注意事項要約: 1. ...
序文count 関数は、テーブルまたは配列内のレコードをカウントするために使用されます。count(...
この記事は主にMysqlの複数データベースのバックアップのコード例を紹介します。この記事ではサンプル...
js興味深いカウントダウンケース、参考までに、具体的な内容は次のとおりですコード: <!DO...
この記事では、参考までに、シンプルな虫眼鏡を実装するためのJavaScriptの具体的なコードを紹介...
Docker Toolbox は、Windows 10 Professional より前のバージョン...
始める前に、process.env.NODE_ENV にはデフォルトで開発と本番の 2 つの状態しか...
<br />ユーザーエクスペリエンスは中国のウェブサイトでますます重視されており、ユーザ...
MySQL 8.0のインストールと設定方法は参考までに。具体的な内容は以下のとおりです。ダウンロード...
この記事では、ビデオプレイリストを実装するためのvue + video.jsの具体的なコードを参考ま...
目次1. クロスドメインはどのように形成されるのでしょうか? 2. クロスドメインの根本的な原因3....