vue3 は各シーンの過剰な読み込みの問題をどのように解決するか

WBOY
リリース: 2023-05-18 15:25:06
転載
1842 人が閲覧しました

    vue3 Common Excess

    1. ページを最初に開いたときにロードする

    ページを最初に開いたときにコンテンツをロードするのが最も簡単です。ルート ディレクトリ index.html ファイル

    を介して <div id='app'> にコンテンツを追加すると、過剰なコンテンツ

    <body>
       <div id="app">
          <h2>加载中......</h2>
       </div>
       <script type="module" src="/src/main.js"></script>
    </body>
    ログイン後にコピー

    vue インスタンスが作成されると、.mount() メソッドと loading コンテンツを通じて id='app' の div にマウントされます。内部が置き換えられます;

    2. ルーティングが切り替わると、非同期コンポーネントがロードされます

    • ルートが過度に切り替わる場合は、最初に 1 つ理解する必要があります。 vue3 のコンポーネント内 <Suspense>;

    • ##<Suspense>2 を提供しますスロット??????;

    • #default: ロードされるコンテンツ;

    • #フォールバック: ロード後に表示されるコンテンツ;

    • <Suspense>
      	<template #default>
      		<router-view />
      	</template>
      	<template #fallback>
      		<h2>加载中......</h2>
      	</template>
      </Suspense>
      ログイン後にコピー

    同様に: (非同期コンポーネントの切り替え)

    <template>
    	<Suspense>
    		<template #default>
    			<AsyncComp  v-if = &#39;vitblie&#39; />
    		</template>
    		<template #fallback>
    			<h2>加载中......</h2>
    		</template>
    	</Suspense>
    	
    	<button @click=&#39;open&#39;> 切换 </button>
    </template>
    <script setup>
    	import { defineAsyncComponent , ref } from &#39;vue&#39;;
    	const asyncComp = defineAsyncComponent(()=>important(&#39;./asyncComp.vue));
    
    	const vitblie = ref(false);
    	function open(){
    		vitblie.value = !vitblie.value;
    	}
    </script>
    ログイン後にコピー

    非同期コンポーネントでも、同じ方法で追加できます。

    トランジション アニメーションの追加

    トランジション アニメーションを追加するには、まず

    vue3 組み込みコンポーネント<コンポーネント>#を理解する必要があります。 ## and<Transition> ????

    : 非常に単純で、1 つの is だけがコンポーネントを表示します。これは、次のようなコンポーネントを切り替えるために使用できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> &lt;template&gt; &lt;Component :is=&quot;visible ? TestComp : &amp;#39;&amp;#39; &quot; /&gt; &lt;/template&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>

    <Transition>

    : Show/Hide に挿入されたコンテンツ トランジション アニメーションを追加し、 # でつなぎ合わせます。 ##name 属性 class 例:

     <template>
     	<transition name=&#39;anime&#39;>
     		<TestComp v-if=&#39;visblte&#39; /> 
     	</transition>
     </template>
    ログイン後にコピー
    スタイルを設定します ここに name

    属性を渡します

    anime -enter-active
    : 遷移状態 (設定

    hide=> show 遷移時間などのパラメータ) anime-leave-active: 遷移状態 (設定
    show=> Hide 遷移時間とその他のパラメータ)anime-enter -from
    =>
    anime-enter-to Hide=> 開始スタイルと終了スタイルを表示 anime-leave-from = >
    anime-leave-to Show=> Hide 開始スタイルと終了スタイル 組み合わせ??????

    <template>
    	<router-view v-slot={ Component } >
    		<transition name=&#39;anime&#39;>
    			<component :is="Component" />
    		<transition>
    	</router-view>
    <template>
    <style scoped>
    .anime-enter-active,
    .anime-leave-active {
    	transition: all 1s;
    }
    .anime-leave-from { transform: translateY(0); }
    .anime-leave-to { transform: translateY(-100%); }
    
    .anime-enter-from { transform: translateY(100%); }
    .anime-enter-to { transform: translate(0); }
    </style>
    ログイン後にコピー

    以上がvue3 は各シーンの過剰な読み込みの問題をどのように解決するかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    関連ラベル:
    ソース:yisu.com
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート