Vue3 でサードパーティのコンポーネントライブラリをオンデマンドでロードする方法

Vue3 でサードパーティのコンポーネントライブラリをオンデマンドでロードする方法

序文

Element Plus を例に、コンポーネントとスタイルのオンデマンド読み込みを構成します。

環境

  • vue3.0.5
  • ビット2.3.3

Element Plusのインストール

糸追加要素プラス
# または
npm インストール element-plus --save

完全な紹介

'vue' から {createApp} をインポートします。
'element-plus' から ElementPlus をインポートします。
'element-plus/lib/theme-chalk/index.css' をインポートします。
'./App.vue' からアプリをインポートします。

const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')

Element Plus の js ファイルと css ファイルのサイズはかなり大きく、時間がかかることがわかります。

オンデマンドロード

vite-plugin-importerプラグインをインストールする

インストール

yarn に vite-plugin-importer を追加
# または
npm インストール vite-plugin-importer --save

Vite公式サイトにはプラグインコラムがあり、コミュニティ推奨プラグインを利用できます


このうち、vite-plugin-importer は babel-plugin-import を統合したもので、 babel-plugin-importコンポーネントとコンポーネント スタイルをオンデマンドで読み込むことができるため、 vite-plugin-importerでも同様に読み込むことができます。


vite.config.js を構成する

'vite' から {defineConfig} をインポートします
'@vitejs/plugin-vue' から vue をインポートします
'vite-plugin-importer' から usePluginImport をインポートします

// https://vitejs.dev/config/
デフォルトのdefineConfigをエクスポートする({
  プラグイン: [
    vue(),
    プラグインインポート({
      ライブラリ名: 'element-plus',
      カスタムスタイル名: (名前) => {
        `element-plus/lib/theme-chalk/${name}.css` を返します。
      },
    })、
  ]、
  解決する: {
    エイリアス: {
      'vue': 'vue/dist/vue.esm-bundler.js'
    },
  },
})

メイン.js

'vue' から {createApp} をインポートします。
'./App.vue' からアプリをインポートします。
'element-plus' から { ElButton、ElSelect } をインポートします。

const app = createApp(App)
app.component(ElButton.name, ElButton);
app.component(ElSelect.name, ElSelect);
app.mount('#app')

vite-plugin-importerを使用してコンポーネントとスタイルをオンデマンドでロードすると、明らかな効果があります。

vite-plugin-style-importをインストールする

インストール

yarn に vite-plugin-style-import -D を追加します
# または
npm i vite-plugin-style-import -D

Element Plus の公式 Web サイトでは、vite-plugin-style-import オンデマンド読み込み方式が提供されています。

構成

設定ファイル

'vite' から {defineConfig} をインポートします
'@vitejs/plugin-vue' から vue をインポートします
'vite-plugin-style-import' から styleImport をインポートします。

// https://vitejs.dev/config/
デフォルトのdefineConfigをエクスポートする({
  プラグイン: [
    vue(),
    スタイルインポート({
      ライブラリ: [
        {
          ライブラリ名: 'element-plus',
          esModule: true、
          スタイルファイルを確認する: true,
          解決スタイル: (名前) => {
            `element-plus/lib/theme-chalk/${name}.css` を返します。
          },
          解決コンポーネント: (名前) => {
            `element-plus/lib/${name}` を返します。
          },
        },
      ]、
    })、
  ]、
  解決する: {
    エイリアス: {
      'vue': 'vue/dist/vue.esm-bundler.js' 
    },
  },
})

メイン.js

'vue' から {createApp} をインポートします。
'./App.vue' からアプリをインポートします。
'element-plus' から { ElButton、ElSelect } をインポートします。

const app = createApp(App)
app.component(ElButton.name, ElButton);
app.component(ElSelect.name, ElSelect);
app.mount('#app')

ご覧のとおり、 vite-plugin-style-import要求に応じてコンポーネント スタイルのみを読み込みます。

要約する

  • vite-plugin-importer は、必要に応じてコンポーネントとコンポーネント スタイルを読み込むことができます。
  • vite-plugin-style-import は、要求に応じてのみコンポーネント スタイルを読み込むことができます。
  • サードパーティのコンポーネント ライブラリを一度ロードするよりも、オンデマンドでロードする方が優れています。

Vue3 がサードパーティのコンポーネントライブラリをオンデマンドでロードする方法についての記事はこれで終わりです。Vue3 のオンデマンドコンポーネントライブラリのロードに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue.js のモバイル コンポーネント ライブラリ mint-ui は、より多くのメソッドを読み込むために無限スクロールを実装します。
  • オンデマンドでロードされる Vue コンポーネント ライブラリの構築方法を説明します (概要)
  • Vue コンポーネント ライブラリをオンデマンド読み込みで置き換える方法

<<:  MySQL における in と exists の使い方と違いの紹介

>>:  Linux 3.X/4.x/5.x でパゴダ パネルのパスワードを忘れた場合の解決方法

推薦する

Node.js でのブレークポイント再開の実装

序文通常のビジネスニーズ: 写真、Excel などをアップロードします。結局のところ、数 MB のサ...

mysqlは複数の主キーを設定する操作を実装します

ユーザーテーブル、ID番号は一意である必要があります、携帯電話番号、電子メールアドレスは一意である必...

Nginx と Lua を使用した JWT 検証の概要

目次序文Lua スクリプトnignx.conf の設定Dockerfileの設定序文データベースやそ...

MySQLの不合理なMaxIdleConnsにより接続が短くなる

1 背景最近、Shimo Document のオンライン ビジネスでパフォーマンスの問題が発生しまし...

MySQL マスタースレーブレプリケーションの役割と動作原理の詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスタースレーブレプリケーションは、スレーブデー...

MySQL ストアド プロシージャで if ステートメントを使用する詳細な例

この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を...

同期スクロールを実現するための複数のテーブル要素のサンプルコード

Element UIは、複数のテーブルを同時に水平および垂直にスクロールすることを実装します。 コー...

HTML 挿入画像の例 (HTML 追加画像)

HTML に画像を挿入するには、画像を表示するための HTML タグが必要です。これは、img タ...

CSS scroll-snap スクロールイベント停止と要素位置検出の実装

1. スクロールスナップはフロントエンド開発者にとって必須のスキルですCSS スクロール スナップは...

nginx で http でアクセスする Web サイトを https に変更する方法

目次1. 背景2. 前提条件https:証明書システム: 3. 操作プロセス3.1 証明書の生成3....

HTML ボディタグと HTML でよく使われる制御タグの詳細な説明

1. <body> タグ: Web ページの本体をマークするために使用されます。body...

ウェブデザインスキル:中国語と英語が混在するウェブページの上位表示の問題

<br />私はこの問題で気が狂いそうです。症状は次のとおりです。 症状の説明: Int...

シンプルなログインページを実装するための HTML+jQuery

目次導入公開コード(バックエンドインターフェース)例 1: 最もシンプル (純粋な HTML)コード...

Linux環境変数の設定戦略の詳細な説明

ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定する必要があります。以下...