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トークナイザーをインストールする方法

推薦する

ろうそくを溶かす(水滴)サンプルコードを実現する純粋な CSS

成果を達成する実装のアイデアフィルターのコントラストとぼかしを利用して溶ける効果を実現します。親要素...

Docker ベースの ELK を素早く構築する方法

[概要] この記事では、自作の Docker プラットフォームをベースに完全な ELK システムを素...

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...

HTML の水平および垂直中央揃えの問題の概要

最近、センタリングの問題に数多く遭遇したので、後で簡単に見つけられるように、時間をかけてそれらを要約...

WebStormはVue3統合APIのソリューションを正しく識別できません

1 問題の説明Vue3 の統合 API は、defineComponent やその他の関数が認識でき...

Mysql 5.7.17 をインストールした後、MySQL にログインするチュートリアル

mysql-5.7.17 のインストールについては記事の下部で紹介されているので、参考にしてください...

JavaScriptプロトタイプと例の詳細な説明

目次コンストラクタインスタンスとプロトタイプの関係プロトタイププロパティ属性またはメンバーの検索原則...

MySQLのレプリケーションの詳細な分析

1.MySQLレプリケーションの概念これは、プライマリ データベースの DDL および DML 操作...

type="file" の入力ボックスのスタイル変更の概要

入力タイプ「file」とは何ですか?これが何なのかは説明する必要はないと思います。誰もが知っているこ...

HTML入門チュートリアル HTMLタグ記号をすぐにマスター

補足<br />HTML について何も知らず、HTML の始め方がまだわからない場合は、...

Angular CLI リリース パスの構成項目の簡単な分析

序文プロジェクトのリリースでは、常に特定の状況に応じたパッケージ化が必要です。Angular CLI...

Nginx ログ出力のリクエスト後パラメータを設定する方法

【序文】当プロジェクトの SMS 機能は、第三者に接続することです。第三者からの元の受信確認要求は ...

Centos7でmysql6の初期化インストールパスワードをインストールする方法

1. まずデータベースサーバーを停止しますサービスmysqld停止2.vim /etc/my.cnf...

さまざまなブラウザに対応するためにCSSで指定フォント@font-faceを導入する際の問題

Web ページを作成するときに、特定のフォントを使用したい場合は、 @font-faceを介して参照...

OpenSSL は双方向認証のチュートリアルを実装します (サーバーとクライアントのコード付き)

1. 背景1.1 問題点最近の製品テスト レポートでは、PKI ベースの認証方法の使用が推奨されて...