Vueでは、グローバルコンポーネントとローカル登録を通じてコンポーネントを使用することができます。 グローバル登録app.component を通じてグローバルコンポーネントを作成する 'vue' から {createApp} をインポートします。 './components/HelloWorld' から HelloWorld をインポートします。 const アプリ = createApp({}) // hello-wolrd という名前のコンポーネントをグローバルに登録します。app.component('hello-wolrd', HelloWorld); コンポーネントをグローバルに登録すると、どこでも使用できるようになります: <hello-world/> グローバル登録により、Vue は TypeScript サポートを失うことに注意してください。Vue 3 には、グローバル コンポーネントのインターフェイスを拡張する PR があります。現在、Volar はすでにこの使用法をサポートしています。ルート ディレクトリに components.d.ts ファイルを追加することで、すべてのゲーム コンポーネントに TypeScript サポートを追加できます。 モジュール 'vue' を宣言します { エクスポートインターフェース GlobalComponents { HelloWorld: typeof import('./src/components/HelloWorld.vue')['default'] } } 部分登録ファイルから vue コンポーネントを直接インポートできます。 単一ファイルコンポーネント(SFC) <テンプレート> <HelloWorld msg="Vue.js アプリへようこそ"/> </テンプレート> <スクリプト> './components/HelloWorld.vue' から HelloWorld をインポートします。 エクスポートデフォルト{ 名前: 'アプリ'、 コンポーネント: こんにちは世界 } } </スクリプト> JSXの場合 './components/HelloWorld.vue' から HelloWorld をインポートします。 エクスポートデフォルト{ 名前: "アイテム", 与える(){ 戻る ( <HelloWorld msg="Vue.js アプリへようこそ"/> ) } } ローカルに登録されたコンポーネントは他のコンポーネントではアクセスできず、親コンポーネントや子コンポーネントでも使用できないため、コンポーネントが使用される各場所でコンポーネントを再導入して登録する必要があります。 './components/HelloWorld.vue' から HelloWorld をインポートします。 しかし、コンポーネントを直接インポートするこの方法には別の利点があります。インポートされたコンポーネントが TypeScript を使用している場合、プラグインなしでコンポーネント内でスマートなプロンプトと型チェック機能を利用できます。 ローカル自動登録ローカル登録の利点は明らかですが、使用するたびに繰り返しインポートする必要があります。ただし、コンポーネントの数が多い場合は、コンポーネント登録コードが長くなる可能性があります。unplugin-vue-components を使用すると、必要に応じてコンポーネントを自動的にインポートできます。コンポーネントは必要に応じてインポートされますが、コンポーネントをインポートして登録する必要はありません。
プラグインをインストールする ヴィテ // vite.config.ts 'unplugin-vue-components/vite' からコンポーネントをインポートします。 デフォルトのdefineConfigをエクスポートする({ プラグイン: [ コンポーネント({ /* オプション */ }), ]、 }) ロールアップ // ロールアップ.config.js 'unplugin-vue-components/rollup' からコンポーネントをインポートします。 エクスポートデフォルト{ プラグイン: [ コンポーネント({ /* オプション */ }), ]、 } ウェブパック // webpack.config.js モジュール.エクスポート = { /* ... */ プラグイン: [ require('unplugin-vue-components/webpack')({ /* オプション */ }) ] } その後、テンプレート内で通常通りコンポーネントを使用すると、次の変換が自動的に実行されます。 <テンプレート> <div> <HelloWorld メッセージ="こんにちは Vue 3.0 + Vite" /> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: 'アプリ' } </スクリプト> 変換する <テンプレート> <div> <HelloWorld メッセージ="こんにちは Vue 3.0 + Vite" /> </div> </テンプレート> <スクリプト> './src/components/HelloWorld.vue' から HelloWorld をインポートします。 エクスポートデフォルト{ 名前: 'アプリ'、 コンポーネント: こんにちは世界 } } </スクリプト> デフォルトでは、src/components ディレクトリ内のコンポーネントを検索します。dirs パラメータを使用してコンポーネント ディレクトリをカスタマイズできます。その他の設定については、github.com/antfu/unplu… を参照してください。 さまざまなソリューションの比較
コンポーネント名についてコンポーネント名を定義する方法は 2 つあります。 ケバブケースの使用: Vue.component('コンポーネント名', { /* ... */ }) ケバブケース(ダッシュで区切られた名前)を使用してコンポーネントを定義する場合、 また、カスタム要素を参照するときには、ケバブケースを使用する必要があります (例: <my-component-name> )。 パスカルケースを使用する Vue.component('MyComponentName', { /* ... */ }) PascalCaseを使用してコンポーネントを定義する場合、 カスタム要素を参照するときは、どちらの命名法も使用できます。 つまり、<my-component-name> と <MyComponentName> の両方が許容されます。 ただし、DOM 内で直接使用される場合 (つまり、文字列以外のテンプレートの場合) は、ケバブケースのみが有効であることに注意してください。 したがって、一般的には、コンポーネントではケバブケース命名方法を使用することをお勧めします。 参照するv3.cn.vuejs.org/guide/comp… v3.cn.vuejs.org/guide/types… github.com/antfu/unplu… 要約するオンデマンドでVueコンポーネントを自動導入する方法についての記事はこれで終了です。オンデマンドでVueコンポーネントを自動導入する方法の詳細については、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL データベースの制約とデータ テーブルの設計原則
>>: VMware 仮想マシン ubuntu18.04 インストール チュートリアル
1. 呼び出しを実装するステップ:関数をオブジェクトのプロパティとして設定します。これを関数に割り当...
SASS を使用する開発者が増えるにつれて、SASS コードの数に注意する必要があります。 SASS...
この記事では、例を使用して、MySQL トリガーの概要、トリガーの作成方法、およびトリガーの使用上の...
この記事では、いくつかの基本的なページ要素の実装方法をまとめており、後で更新される予定です。まず、私...
<frameset></frameset>は皆さんもよくご存知のものです。こ...
WindowsにTomCatをインストールするこの記事では、WindowsプラットフォームにTomC...
目次1. テレポートの使用2. モーダルダイアログコンポーネントを完成させる3. コンポーネントのレ...
この記事では、最も単純なビデオ連射機能をシミュレートするデモを作成します。アイデア:再生する動画と同...
1. 透明度を変更してテキストを徐々に点滅させると、次のような効果が得られます。 <!DOCT...
目次1 はじめに2 基本的な使い方2.1 方法2.2 計算プロパティ2.3 リスナーを見る3 3つの...
この記事では、例を使用して、MySQL トリガーの追加、削除、変更、およびクエリ操作について説明しま...
この記事では、タブ切り替えの虫眼鏡効果を実現するためのVueの具体的なコードを例として紹介します。具...
ショートハンドプロパティは、複数のプロパティに同時に値を割り当てるために使用されます。たとえば、fo...
Vueにaxiosを挿入する 'axios' から axios をインポートします。...
目次概要オブジェクトにメソッドを定義するオブジェクトリテラルオブジェクトプロトタイプ動的コンテキスト...