混合継承の影響: 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):模倣と盗作について
アプリケーションシナリオバックグラウンド管理システムを例にとると、各ユーザーには異なるボタン権限があ...
コンテナログを表示するまず、 docker run -it --rm -d -p 80:80 ngi...
目次概要コンポーネント間でデータを共有する方法Vuex の原則の紹介Vuexはコンポーネントのグロー...
GROUP BY 構文を使用すると、指定されたデータ列の各メンバーに従ってクエリ結果をグループ化して...
1. Flexレイアウトの紹介Flex は Flexible Box の略で、「柔軟なレイアウト」を...
コンストラクタの借用この手法の基本的な考え方は単純です。サブタイプ コンストラクター内からスーパータ...
この記事では、カスタムツリーコンポーネントを再帰的に実装するVueの具体的なコードを参考までに共有し...
Taobao のウェブページはインポートを使用していますが、多くのウェブサイトはリンクを使用していま...
1. まず、次のパスに従って対応するフォルダを作成します。 ローカルのdockerでmysqlを実行...
この記事では、参考までに、簡単なタイマー機能を実装するためのvue.jsの具体的なコードを紹介します...
デモを作成するときにこのプラグインを使用していくつか問題が発生したため、プラグインの使用方法といくつ...
1. 基本ライン 2. 特殊効果(効果は独立しておらず、互いに組み合わせることができます) 1. 両...
1.アルパインイメージをダウンロードする [root@DockerBrian ~]# docker ...
スライドショーは Web ページでよく見られます。美しい写真が使われています。こちらは純粋な CSS...
ある読者から連絡があり、ダウンロードが終了し、操作がまだ開始されていないのに、なぜ Tomcat の...