Vue3はサイドナビゲーションテキストスケルトン効果コンポーネントをカプセル化します

Vue3はサイドナビゲーションテキストスケルトン効果コンポーネントをカプセル化します

Vue3プロジェクトのカプセル化サイドナビゲーションテキストスケルトン効果コンポーネント-グローバルカプセル化、参考までに、具体的な内容は次のとおりです。

目的

ページを表示するときに、一部のデータをバックグラウンドから読み込む必要があります。ネットワークの状態が良くない場合は、待機が必要になる場合があります。この場合、スケルトン レイヤーの点滅アニメーションを作成して、ユーザー エクスペリエンスを向上させることができます。

一般的な手順

- プレースホルダーとして機能するコンポーネントが必要です。このプレースホルダー コンポーネントには、専門用語で「スケルトン スクリーン コンポーネント」という用語が使われています。
いくつかのプロパティを公開します: 高さ、幅、背景、フラッシュ アニメーションがあるかどうか。

- これはグローバルに登録する必要があるパブリック コンポーネントです。将来的には、このようなコンポーネントを vue プラグインで定義することをお勧めします。

- コンポーネントを使用して、左側の分類スケルトン効果を完成させます。

着陸コード

1. 梱包部品

<テンプレート>
  <div class="skeleton" :style="{width,height}" :class="{shan:animated}">
    <!-- 1 ボックス -->
    <div class="block" :style="{backgroundColor:bg}"></div>
    <!-- 2 フラッシュ効果 xtx-skeleton 疑似要素--->
  </div>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  名前: 'スケルトン'、
  // 使用する場合、高さ、幅、背景色、フラッシュするかどうかを動的に設定する必要があります。props: {
    背景: {
      タイプ: 文字列、
      デフォルト: '#efefef'
    },
    幅: {
      タイプ: 文字列、
      デフォルト: '100px'
    },
    身長:
      タイプ: 文字列、
      デフォルト: '100px'
    },
    アニメーション:
      タイプ: ブール値、
      デフォルト: false
    }
  }
}
</スクリプト>
<style スコープ lang="less">
.スケルトン{
  表示: インラインブロック;
  位置: 相対的;
  オーバーフロー: 非表示;
  垂直位置合わせ: 中央;
  。ブロック {
    幅: 100%;
    高さ: 100%;
    境界線の半径: 2px;
  }
}
.シャン
  &::後 {
    コンテンツ: "";
    位置: 絶対;
    アニメーション: shan 1.5 秒、ease 0 秒、無限;
    上: 0;
    幅: 50%;
    高さ: 100%;
    背景: 線形グラデーション(
      左へ、
      RGBA(255, 255, 255, 0) 0,
      RGBA(255, 255, 255, 0.3) 50%,
      RGBA(255, 255, 255, 0) 100%
    );
    変換: skewX(-45deg);
  }
}
@keyframes シャン {
  0% {
    左: -100%;
  }
  100% {
    左: 120%;
  }
}
</スタイル>

2. パッケージングプラグイン

// Vue のオリジナル機能を拡張します: グローバル コンポーネント、カスタム命令、プロトタイプ メソッドの実装、注意: グローバル フィルターはありません。
// これはプラグインです // Vue2.0 プラグインの記述要素: オブジェクトをエクスポートし、インストール関数を持ち、デフォルトで Vue コンストラクターを渡し、Vue に基づいて拡張します // Vue3.0 プラグインの記述要素: オブジェクトをエクスポートし、インストール関数を持ち、デフォルトでアプリ アプリケーション インスタンスを渡し、アプリに基づいて拡張します import Skeleton from './skeleton.vue'

エクスポートデフォルト{
  インストール(アプリ){
    // アプリを拡張します。アプリはコンポーネント ディレクティブ関数を提供します // プロトタイプをマウントする場合は、app.config.globalProperties メソッド app.component(Skeleton.name, Skeleton)
  }
}

3. エントリファイル main.js でのグローバル登録

'vue' から {createApp} をインポートします。
'./App.vue' からアプリをインポートします。
'./components/library' から MyUI をインポートします。

// プラグインを使用するには、main.js で app.use(plugin) を使用します
createApp(App).use(store).use(router).use(MyUI).mount('#app')

4. プロジェクトコンポーネント内のコンポーネントの使用

コンポーネントを使用する場合、スケルトン効果が必要な場所では相互に排他的なv-ifとv-elseが使用されます。

コンポーネントをカプセル化する場合、内部的にカスタムプロパティ props を通じて、幅、高さ、背景、アニメーションの 4 つのパラメータを受け取ります。コンポーネントを使用するときに、シーンの要件に応じて対応する値を渡すことができます。

コードは次のとおりです

<span v-else>
  <スケルトン width="60px" height="18px" style="margin-right:5px" bg="rgba(255,255,255,0.2)" :animated="true" />
  <スケルトン width="50px" height="18px" bg="rgba(255,255,255,0.2)" :animated="true" />
</span>

効果

要約する

1. スケルトンスクリーンセルコンポーネントをカプセル化する
2. Vueプラグインを設定し、グローバルコンポーネントを設定する
3. エントリファイルをインポートし、UIコンポーネントライブラリプラグインを構成する
4. スケルトン画面コンポーネントを使用してカテゴリリスト内の場所を占める

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • mpvueは左ナビゲーションと右コンテンツ間の連携を実現します
  • Vue+Vue Router マルチレベルサイドナビゲーション切り替えルーティング(ページ)実装コード

<<:  count(1)、count(*)、count(列名)の実行の違いの詳細な説明

>>:  Dockerコンテナ内にkibanaトークナイザーをインストールする方法

推薦する

Linuxシステムの操作レベルの詳細な紹介

目次1. Linuxシステムの操作レベルの概要2. 実行レベルを確認する3. 現在のシステムの動作レ...

MySQL 8.0.15 winx64 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.15のインストールと設定方法を参考までに紹介します。具体的な内容は...

MySQL 5.7.13 ソースコードのコンパイル、インストール、および構成方法のグラフィックチュートリアル

インストール環境: CentOS7 64ビットMINI版公式ソースコードのコンパイルおよびインストー...

Vueトップタグ閲覧履歴の実装

目次ナンセンス実装された機能文章要点ナンセンスデモプレビュー実装された機能デフォルトでホームページが...

Dockerfile をベースに Zabbix 監視システムのコード例を作成する

forループを使用してZabbixイメージをコンテナにインポートします。 n を `ls *.tar...

MySQL 5.7.23 のインストールと設定のグラフィックチュートリアル

この記事では、mysql5.7.23 の詳細なインストールプロセスを記録し、皆さんと共有します。 1...

MySQLでユーザー認証情報を表示する具体的な方法

具体的な方法: 1. コマンドプロンプトを開く2. mysql -u root -pコマンドを入力し...

おすすめの無料英語手書きフォント20選

Jellyka Beesアンティーク手書き [ank]* ジェリーカ・カティカップケーキ LHF ジ...

Vue.js ソースコード解析のカスタム手順の詳細な説明

序文コア機能のデフォルトの組み込みディレクティブ (v-model および v-show) に加えて...

MySQL5.7+ MySQL Workbenchのインストールと設定方法のグラフィックチュートリアル(MAC)

この記事では、主にMACオペレーティングシステムでのMySQL5.7とMySQLWorkbenchの...

フォームのmethod=post/getの違い

フォームは、get と post の 2 つのデータ転送方法を提供します。どちらもデータを送信する方...

JSプロトタイプとプロトタイプチェーンについての簡単な説明

目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...

mysql5.7.21 の異常起動を修正する方法

同僚から、停電のため MySQL インスタンスを起動できないという報告がありました。 innodb_...

MySQL と接続関連のタイムアウトの詳細な概要

MySQL と接続関連のタイムアウト序文:今日、同僚から、データ量が多いときに MySQL データベ...

MySQLの論理アーキテクチャに関する深い理解

MySQL は現在、ほとんどの企業や事業体で使用されているデータベースです。MySQL が使用される...