この記事では主にVueにおけるコンポーネントの切り替えとキャッシュソリューションについて紹介します 1. コンポーネント切り替え方式方法1: v-ifとv-elseを使用する// 変数フラグが true の場合、comp-a コンポーネントが表示され、そうでない場合は comp-b コンポーネントが表示されます <comp-a v-if="flag"></comp-a> <comp-b v-else></comp-b> 方法 2: 組み込みコンポーネントを使用する: <component></component>// クリックするとログイン、登録、終了コンポーネントが切り替わります <template> <div> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click.prevent="comName = 'login'">ログイン</a> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click.prevent="comName = 'register'">登録</a> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click.prevent="comName = 'logOut'">ログアウト</a> // <component></component> は対応する名前のコンポーネントを表示します。これはプレースホルダーに相当します // :is 属性はコンポーネント名を指定します <component :is="comName"></component> </div> </テンプレート> 方法3: vue-router// ルーティングルール: { パス: '/login', 名前: 'ログイン', コンポーネント: () => import('../views/login.vue') }, { パス: '/register', 名前: 'レジスタ', コンポーネント: () => import('../views/register.vue') }, //コンポーネントを表示する場所: <ルータービュー /> 2. コンポーネントのキャッシュ: キープアライブこの記事の冒頭の実際のシナリオのように、コンポーネントを破棄して再構築するのではなく、必要に応じてコンポーネントをキャッシュします。 1.キープアライブの定義
<keep-alive> は抽象コンポーネントです。DOM要素自体はレンダリングされず、親コンポーネント チェーンにも表示されません。 2.キープアライブライフサイクル活性化された
無効化 このフックは
キャッシュが設定されているコンポーネント:
3. キープアライブの使い方1. 小道具
2. <component></component> で使用する<テンプレート> <div> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click.prevent="comName = 'login'">ログイン</a> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click.prevent="comName = 'register'">登録</a> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click.prevent="comName = 'logOut'">ログアウト</a> // ログイン コンポーネントがキャッシュされます。include が設定されていない場合、<component></component> にマウントされているすべてのコンポーネントがデフォルトでキャッシュされます。// 指定された複数のコンポーネントをキャッシュします include = ['login', 'register'] <キープアライブを含める="ログイン"> <コンポーネント:is="comName"></コンポーネント> </キープアライブ> </div> </テンプレート> 3. <router-view /> ルーティングで使用するルーティング { パス: '/login', 名前: 'ログイン', コンポーネント: () => import('../views/login.vue') メタ:{ keepAlive : true // ログインコンポーネントはキャッシュされます} }, { パス: '/register', 名前: 'レジスタ', コンポーネント: () => import('../views/register.vue'), メタ:{ keepAlive : false // レジスタコンポーネントはキャッシュされません} }, <ルータービュー />: <div id="アプリ"> <キープアライブ> <!-- キャッシュする必要があるコンポーネントを表示します--> <router-view v-if="$route.meta.keepAlive"> </router-view> </キープアライブ> <!-- キャッシュを必要としないコンポーネントを表示します --> <router-view v-if="!$route.meta.keepAlive"> </router-view> </div> 4. キャッシュコンポーネントをクリアする// beforeRouteLeave() フック // 詳細ページに移動するかどうかを決定する beforeRouteLeave(to, from, next) { to.path === "/goods_detail"の場合{ メタキープアライブ = true; } それ以外 { from.meta.keepAlive = false; // this.$destroy() } 次(); } これで、vue コンポーネントの切り替え、動的コンポーネント、コンポーネントのキャッシュに関するこの記事は終了です。vue コンポーネントの切り替え、動的コンポーネント、コンポーネントのキャッシュに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: ウェブ画像形式としてPNG、JPG、GIFを選択して使用する方法
夜遅くまで何度も困難なシングルステップデバッグを行った後、ようやく理想的なブレークポイントを見つけま...
私が学習していたときに使用していたバージョンは比較的新しいものであり、インターネット上のチュートリア...
目次要約する <テンプレート> <div> 要素 <h2>{{メ...
1.Mysqlイメージを取得するdocker pull mysql:5.7 2. MySQLイメージ...
目次概要コンポーネント間でデータを共有する方法Vuex の原則の紹介Vuexはコンポーネントのグロー...
パブリッシュ/サブスクライブとは何ですか?例を挙げてみましょう。あなたは服を買うために店に行きます。...
XHTML には多くのタグがありますが、頻繁に使用されるのはごくわずかであり、習得する必要があるのは...
目次1. Tomcatコードをダウンロードする2. ダウンロード後のディレクトリ構造3. ソースコー...
この記事では、主に同じ親タグの左側と右側にある 2 つのボタンの CSS レイアウト方法を紹介し、皆...
Baidu には slot-scope に関する記事が既にたくさんありますが、以前よく学習しておら...
目次1. 操作要素1.1. 要素コンテンツの変更1.2. innerText と innerHtml...
MySQL でグループ化した後、各グループの最大値を取得する詳細な例1. テストデータベーステーブル...
1. 新サイトホームページのリンクレイアウト1. リンク配置の位置:リンク配置の位置によって、リンク...
シナリオ最大 10000 要素のリストを正しくレンダリングする方法。無限ドロップダウン読み込みテクノ...
<br /> 特定の Web サイトを閲覧して、優れた Web ページを見つけた場合、そ...