Vuejs-components
VueJS-コンポーネント
- Vueコンポーネント*は、HTMLで再利用できるカスタム要素を作成するVueJSの重要な機能の1つです。
サンプルを使用してコンポーネントを作成してみましょう。これにより、コンポーネントがVueJSでどのように機能するかをより深く理解できます。
例
lファイルでは、ID component_test と component_test1 の2つのdivを作成しました。 上記の .js ファイルでは、2つのVueインスタンスがdiv idで作成されます。 両方のビューインスタンスで使用される共通コンポーネントを作成しました。
コンポーネントを作成するための構文は次のとおりです。
コンポーネントが作成されると、コンポーネントの名前がカスタム要素になり、作成されたVueインスタンス要素で同じ要素を使用できます。 IDが component_test および component_test1 のdiv内。
例
実行時に、同じことがブラウザに反映されます。
コンポーネントには、カスタム要素タグ、つまり <testcomponent> </testcomponent> 。 ただし、ブラウザで同じものを検査しても、次のスクリーンショットに示すように、テンプレートにプレーンHTMLのカスタムタグが存在することはわかりません。
また、次のスクリプトに示すように、コンポーネントを直接vueインスタンスの一部にしました。
これは*ローカル登録*と呼ばれ、コンポーネントは作成されたvueインスタンスのみの一部になります。
これまで、基本的なオプションを備えた基本的なコンポーネントを見てきました。 次に、データやメソッドなどのオプションを追加します。 Vueインスタンスにデータとメソッドがあるように、コンポーネントも同じものを共有します。 したがって、データとメソッドで既に見たコードを拡張します。
例
上記の .js ファイルに、オブジェクトを返す関数であるデータを追加しました。 オブジェクトには名前プロパティがあり、値「Ria」が割り当てられています。 これは、次のテンプレートで使用されます。
データをコンポーネントの関数として持っているにもかかわらず、直接Vueインスタンスで使用するのと同じ方法でそのプロパティを使用できます。 また、changenameとoriginalnameの2つのメソッドが追加されています。 changenameでは、nameプロパティを変更しています。originalnameでは、元の名前にリセットしています。
また、divにmouseoverとmouseoutの2つのイベントを追加しました。 イベントの詳細については、イベントの章で説明します。 そのため、現時点では、mouseoverは changename メソッドを呼び出し、mouseoutは originalname メソッドを呼び出します。
同じ表示が次のブラウザに表示されます。
上記のブラウザに見られるように、データプロパティで割り当てられた名前が表示されますが、これは同じ名前です。 また、divのmouseoverイベントとmouseoutを割り当てました。 マウスオーバーとマウスアウトで何が起こるか見てみましょう。
マウスオーバーすると、最初のコンポーネントの名前がBenに変更されますが、2番目のコンポーネントはそのまま残ります。 これは、データコンポーネントが関数であり、オブジェクトを返すためです。 したがって、ある場所で変更されても、他の場合は同じものは上書きされません。
動的コンポーネント
動的コンポーネントは、キーワード <component> </component> を使用して作成され、次の例に示すようにプロパティを使用してバインドされます。
例
出力
動的コンポーネントは、次の構文を使用して作成されます。
v-bind:is =” view”があり、それに値ビューが割り当てられています。 ビューは、Vueインスタンスで次のように定義されます。
実行されると、テンプレート Dynamic Component がブラウザに表示されます。