混合継承の影響: 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. ダウンロード参考: https://www.jb51.net/softs/451120.ht...
以下はすべて仮想マシン上で実行されます1. pip3をインストールするsudo apt で pyth...
目次1. 電卓機能の紹介2. 計算機ページのデザイン1. ナビゲーションバー2. データ部分3. i...
序文:多くのビジネス テーブルでは、歴史的またはパフォーマンス上の理由により、最初のパラダイムに違反...
具体的な方法:まずコマンドプロンプトを開きます。次に、[ mysql -u root -p ] コマ...
最近、モバイルページを制作する際には、レイアウトにインラインブロック要素がよく使われますが、インライ...
目次導入ログ分類パラメータファイルエラーログファイル完全なログファイルスロークエリログバイナリログフ...
1. コマンドの紹介ファイル コマンドは、ファイルの種類を識別するために使用されます。ファイル チェ...
問題を見つける最近MySQLをMySQL 5.7にアップグレードした後、次のようなクエリでグループ化...
まず、setIntervalはフックとしてカプセル化されます👇 'react' から...
質問1 解決するサービスを開始します: service mysqld start; /sbin/ip...
ディスク領域の管理は、システム管理者にとって重要な日常的なタスクです。ディスク領域が使い果たされると...
ファイルコントロールを美しくする理由は何ですか?他の子供たちはみんなきちんとしたきれいな服を着ている...
導入された HTML タグは、必ずしも XHTML 仕様に完全に準拠しているわけではありません。実際...
目次序文Vue CLI での設定基本コードVueルーターの登場ネストされたルートの設定要約する序文V...