混合継承の影響: Aにはデータ属性とsayメソッドがある Bにはseeメソッドとname属性がある AがBを継承すると、Aは自身のデータ属性とsayメソッドに加えて、Bのseeメソッドとname属性も持つようになる。 C に AB を混合すると、C には独自の要素と、A のデータ属性と say メソッド、および B の see メソッドと name 属性が含まれるようになります。 1. 継承Vue.extend メソッドVue.extend( Vue ComponentOptions ) は、基本 Vue コンストラクターを使用して「サブクラス」を作成するグローバル メソッドです。引数は、コンポーネント オプション (Vue ComponentOptions) を含むオブジェクトです。 データ属性は特別なケースであり、注意が必要です。Vue.extend() の関数(ファクトリ関数)である必要があります。 // コンストラクタを作成する ja var プロファイル = Vue.extend({ テンプレート: '<p>{{firstName}} {{lastName}} 別名 {{alias}}</p>', データ: 関数 () { 戻る { ファーストネーム: 'ウォルター', 姓: 'ホワイト', 別名:「ハイゼンベルク」 } } }) // Profile クラスのインスタンスを作成し、要素に添付します。 新しいプロファイル().$mount('#mount-point') プロパティを拡張するextends を使用すると、Vue.extend を使用せずに別のコンポーネントの拡張機能 (単純なオプション オブジェクトまたはコンストラクター) を宣言できます。これは主に、単一ファイル コンポーネントの拡張を容易にするためです。タイプはオブジェクトまたは関数です pageTwo.vue ファイル <テンプレート> <div> <h3>2 ページ目</h3> <ページング :total="合計" :pageSize="ページサイズ" :sizeOptions="サイズオプション"/> </div> </テンプレート> <スクリプト> '../component/PagingData.vue' から PagingData をインポートします。 エクスポートデフォルト{ // 継承を実装する extends: PagingData } </スクリプト> 注: 上記のファイルの paging は、グローバルに登録されたカスタム コンポーネントです。PagingData もコンポーネントですが、登録されていません。代わりに、そのコンテンツは継承を通じて pageTwo にマージされます。 2. ミックスインミックスイン オブジェクトには任意のコンポーネント オプションを含めることができます。コンポーネントがミックスインを使用する場合、ミックスインのすべてのオプションがコンポーネント自体のオプションに「混合」されます。 マージルールコンポーネントとミックスインに同じ名前のオプションがある場合、それらのオプションは適切な方法で「マージ」されます。 1. データ オブジェクトは内部で再帰的にマージされ、競合が発生した場合はコンポーネント データが優先されます。 2. 同じ名前のフック関数(ライフサイクル関数)は配列にマージされ、すべて呼び出されます。さらに、ミックスインのフックはコンポーネント自体のフックの前に呼び出されます。 3. メソッド、コンポーネント、ディレクティブなど、値がオブジェクトであるオプションは、同じオブジェクトにマージされます。 2 つのオブジェクトのキー名が競合する場合は、コンポーネント オブジェクトのキーと値のペアが取得されます。 継承(拡張)もこのマージのルールです。 ミックスインを使用して多重継承を実装できます。ミックスインは継承の実装には使用されません。複数の Vue ComponentOptions (Vue オプション コンポーネント オブジェクト) を結合します。 形式: ミックスイン: [コンポーネント 1 をマージ、コンポーネント 2 をマージ、…] pageOne.vue ファイル <テンプレート> <div> <h3>1ページ目</h3> <hr/> <ページング @pageChangeEvt="cb" :total="合計" :pageSize="ページサイズ" :sizeOptions="sizeOptions"/> </div> </テンプレート> <スクリプト> '../component/PagingData.vue' から PagingData をインポートします。 '../component/PagingFunc' から PagingFunc をインポートします。 エクスポートデフォルト{ // 拡張: {PagingFunc、PagingData}、 // 拡張: [PagingFunc、PagingData]、 ミックスイン: [PagingFunc、PagingData]、 } </スクリプト> 注: 上記のファイルの paging は、グローバルに登録されたカスタム コンポーネントです。PagingData と PagingFunc もコンポーネントですが、登録されていません。代わりに、それらのコンテンツはミキシングによって pageOne にマージされます。 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Webデザインチュートリアル(2):模倣と盗作について
背景まず最初に、私はフロントエンド開発の専門家ではないことを述べておきたいと思います。私の以前のコン...
最近、関連テーブル内のすべてのフィールドをクエリし、それらを 1 つのフィールドに再グループ化する必...
序文デフォルトでは、MySQL はデータベース クエリ データをキャッシュするために大きなメモリ ブ...
monaco-editor-vueの公式ソースコードは次のとおりです。インデックス 'mon...
目次1. Typescriptの紹介2. 設定ファイル webpack 設定3. プロジェクトに.t...
序文ページを共有するときに、ブラウザの戻るボタンをクリックしてプロジェクトのホームページに戻り、訪問...
目次序文1. レンダリング2. コード3. 背景画像素材要約する序文Threejs は、Web ベー...
まず、Web ページのスタイルの形成は、主に Web ページのレイアウト設計、ページの色処理、画像と...
導入:多くの場合、さまざまな選択ステートメントを使用して必要なデータを照会した後、多くの人は作業が正...
my.ini とは何ですか? my.ini は、MySQL データベースで使用される設定ファイルです...
MJML は、開発者が美しく、応答性に優れ、あらゆるデバイスやメール クライアントで動作する魅力的な...
この記事では、USBバーコードスキャナデータを取得するjsの具体的なプロセスを参考までに紹介します。...
Vue.js を使用して、クリックしてズームできる 9 グリッドの画像表示モジュールを作成しました。...
jQuery 入門jQuery ライブラリは、簡単なマークアップ行を使用して Web ページに追加で...
新しいプロジェクトを始めるこの記事では主に、新規プロジェクトを0から1まで取り組むプロセスを記録し、...