みなさんこんにちは、現役エンジニアのサメハックです
アパレル企業でトップ販売員を経て
未経験からWebエンジニアに転職し、
現在正社員として5年働いています!
Vue.jsの解説シリーズです。
今回はHTMLのコンポーネント化について学んでいきましょう!
駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!
- コンポーネント化して使いまわそう!
HTMLをコンポーネント化しよう!
![](https://samehack.com/wp-content/uploads/2022/06/art-2578353_1920-1024x682.jpg)
コンポーネント化とは
HTMLを部品化して、再利用出来るようにすることです。
templateとは
コンポーネントを管理するためのプロパティです。
■ templateの構文
app.component("任意のテンプレート名", {
template:`
// この部分に部品化したいHTML要素を記述
`
});
■ HTMLでコンポーネントを読み込む
<任意のテンプレート名></任意のテンプレート名>
Vueの管理下でのみ読み込めるよ!
実際に作ってみよう!!
![](https://samehack.com/wp-content/uploads/2022/06/writing-gca03c6687_1920-1024x683.jpg)
固定されたHTMLをコンポーネント化しよう!
<div>こんにちは、サメハックです!</div>
<div>こんにちは、サメハックです!</div>
<div>こんにちは、サメハックです!</div>
上記のような、HTMLファイルを部品化してみましょう
See the Pen Untitled by samehack (@samehack) on CodePen.
このように、Vue.jsではtemplateに記述したHTMLをコンポーネント化して
好きに呼び出す事ができます!
引数 Props を使おう!
![](https://samehack.com/wp-content/uploads/2022/06/work-731198_1920-1-1024x683.jpg)
<div>こんにちは、サメハックです!</div>
<div>こんにちは、いぬハックです!</div>
<div>こんにちは、ねこハックです!</div>
このように、一部分だけ異なるテキストを持つHTMLをコンポーネント化するためには
propsというプロパティを使います。
propsとは引数を受け取るためのプロパティです。
■ templateの構文
app.component("任意のテンプレート名", {
// 受け取る引数
props:["引数名"]
template:`
// {{引数名}} で引数を使用できる
// 受け取った引数を使いつつ、部品化したいHTML要素を記述
`
});
■ HTMLから引数 props を渡す
<任意のテンプレート名 引数名=値></任意のテンプレート名>
■ HTMLから複数の引数 props を渡す
<任意のテンプレート名 引数名1=値 引数名2=値></任意のテンプレート名>
See the Pen componentで部品化 by samehack (@samehack) on CodePen.
ちなみに引数は複数渡すことも出来るよ!
動的なデータを引数として渡そう!
![](https://samehack.com/wp-content/uploads/2022/06/tree-g025bdc1a9_1280-1024x637.jpg)
もちろん、Vueで管理しているdataを引数として渡すことも可能です!
■ HTMLから引数 props を渡す
<任意のテンプレート名 v-bind:引数名=値></任意のテンプレート名>
See the Pen componentで部品化 propsを使う by samehack (@samehack) on CodePen.
このように記述することで、Vueで管理しているデータを渡して
コンポーネントを使うことができます!
おまけ:問題
<div>みなさんおはようございます、サメハックです!</div>
<div>みなさんこんにちは、いぬハックです!</div>
<div>みなさんこんばんは、ねこハックです!</div>
上記のHTMLをコンポーネント機能を使って表示してください
データを配列化すればループ処理が使えるよ!
まとめ
![](https://samehack.com/wp-content/uploads/2021/11/dfe65cc8c5d3185e7b92ade5af4cc6bb-4-1024x264.jpg)
- コンポーネント化とは、HTMLを部品化して再利用出来るようにすること
- templateとは、コンポーネントを管理するためのプロパティ
- 引数を渡すことも可能
おまけの答え
See the Pen componentで部品化 propsを使う_dataを引数で渡す by samehack (@samehack) on CodePen.
このようになります。
ポイントはv-forを使う点と引数を2つ渡すことです。
![](https://samehack.com/wp-content/uploads/2022/01/Vue.js-1-320x180.jpg)
![](https://samehack.com/wp-content/uploads/2021/09/00c3d3cf1d32995d7b5414ac551d13f3.png)
満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈