Vue.js学習ノート13カスタムコンポーネント
7941 ワード
Vueではコンポーネントをカスタマイズできます.
1.template(htmlコンテンツのカスタマイズ)
いろいろな定義がありますが、以下のようなhtmlヒントがあり、便利で、間違いにくいことをお勧めします.
次の点に注意してください.
1.1コンポーネント別名がアルパカ命名法myCom 1の場合、使用するラベルは書くのが面倒で、小文字を使うことをお勧めします.
1.2 templateラベルのhtml内容は、すべて1つの最外層要素に含まれなければならない.2つの最外層要素があってはならない.次の例ではdivを削除すると、h 3とh 5はいずれも最外層になり、エラーが発生する.
以上は共通コンポーネントの定義と使用ですが、プライベートコンポーネントであれば、直接Vueのインスタンスでcomponents関数で定義すればいいのですが、ここではhtmlの内容を直接関数に書きますが、これはお勧めしません.ヒントがないからです.
使用方法は、共通コンポーネントと同様ですが、プライベートなため、定義されたVueインスタンスの制御コンテナでのみ使用できます.
2. data
templateはHtmlの内容を定義し、dataはデータ部分を定義することができ、コンポーネントのdataはfunctionでなければならないことに注意し、1つのオブジェクトを返し、Vueインスタンスのdataのように直接オブジェクトに書くことはできません.
使用方法は簡単で、templateタグで直接{}}で呼び出せばいいので、Vueインスタンスを呼び出すdataの属性と同じですが、対応するtemplateタグでしか使えません.
3.methods
Vueインスタンスで定義されているように、コンポーネントではメソッドも定義できます.
使用も全く同じです
コンポーネントを使用する場合は、Vueにラベルを付ける必要があります.コンポーネントidは文字列なので、付けないとVueの変数として扱われます.
前述したように、単一引用符を付けないとVueの変数として扱われるので、Vueインスタンスで変数を定義してもよいし、コンポーネントの切り替えを制御し、状況に応じてcomNameの値を変更すればよい.
下一篇:
Vue.js学習ノート12 Vue Ajaxリクエスト開始
転載先:https://www.cnblogs.com/luyShare/p/11571251.html
1.template(htmlコンテンツのカスタマイズ)
いろいろな定義がありますが、以下のようなhtmlヒントがあり、便利で、間違いにくいことをお勧めします.
次の点に注意してください.
1.1コンポーネント別名がアルパカ命名法myCom 1の場合、使用するラベルは書くのが面倒で、小文字を使うことをお勧めします.
1.2 templateラベルのhtml内容は、すべて1つの最外層要素に含まれなければならない.2つの最外層要素があってはならない.次の例ではdivを削除すると、h 3とh 5はいずれも最外層になり、エラーが発生する.
"divApp">
"tmp1">
template
!
<span style="color:#008000;">//</span><span style="color:#008000;"> :mycom1, template id:tmp1</span>
Vue.component(<span style="color:#800000;">'</span><span style="color:#800000;">mycom1</span><span style="color:#800000;">'</span><span style="color:#000000;">, {
template: </span><span style="color:#800000;">'</span><span style="color:#800000;">#tmp1</span><span style="color:#800000;">'</span><span style="color:#000000;">
})
</span><span style="color:#0000ff;">var</span> v = <span style="color:#0000ff;">new</span><span style="color:#000000;"> Vue({
el: </span><span style="color:#800000;">'</span><span style="color:#800000;">#divApp</span><span style="color:#800000;">'</span><span style="color:#000000;">,
data: {
},
methods: {}
})
</span>
以上は共通コンポーネントの定義と使用ですが、プライベートコンポーネントであれば、直接Vueのインスタンスでcomponents関数で定義すればいいのですが、ここではhtmlの内容を直接関数に書きますが、これはお勧めしません.ヒントがないからです.
var v = new Vue({
el: '#divApp',
data: {
},
methods: {},
components:{
mycom2: {
//template:'#tmp2'
template:'
'
}
}
})
使用方法は、共通コンポーネントと同様ですが、プライベートなため、定義されたVueインスタンスの制御コンテナでのみ使用できます.
"divApp">
2. data
templateはHtmlの内容を定義し、dataはデータ部分を定義することができ、コンポーネントのdataはfunctionでなければならないことに注意し、1つのオブジェクトを返し、Vueインスタンスのdataのように直接オブジェクトに書くことはできません.
// :mycom1, template id:tmp1
Vue.component('mycom1', {
template: '#tmp1',
data: function () {
return {
msg:' data msg'
}
}
})
使用方法は簡単で、templateタグで直接{}}で呼び出せばいいので、Vueインスタンスを呼び出すdataの属性と同じですが、対応するtemplateタグでしか使えません.
"tmp1">
{{msg}}
template
!
3.methods
Vueインスタンスで定義されているように、コンポーネントではメソッドも定義できます.
// :mycom1, template id:tmp1
Vue.component('mycom1', {
template: '#tmp1',
data: function () {
return {
msg:' data msg'
}
},
methods: {
changeText() {
this.msg = ' ';
}
}
})
使用も全く同じです
{{msg}}
template
!
"button" value=" " v-on:click="changeText" />
コンポーネントを使用する場合は、Vueにラベルを付ける必要があります.コンポーネントidは文字列なので、付けないとVueの変数として扱われます.
is="'mycom2'">
前述したように、単一引用符を付けないとVueの変数として扱われるので、Vueインスタンスで変数を定義してもよいし、コンポーネントの切り替えを制御し、状況に応じてcomNameの値を変更すればよい.
is="comName">
<span style="color:#0000ff;">var</span> v = <span style="color:#0000ff;">new</span><span style="color:#000000;"> Vue({
el: </span><span style="color:#800000;">'</span><span style="color:#800000;">#divApp</span><span style="color:#800000;">'</span><span style="color:#000000;">,
data: {
comName: </span><span style="color:#800000;">'</span><span style="color:#800000;">mycom1</span><span style="color:#800000;">'</span><span style="color:#000000;">
},
methods: {},
})
</span>
下一篇:
Vue.js学習ノート12 Vue Ajaxリクエスト開始
転載先:https://www.cnblogs.com/luyShare/p/11571251.html