Vueコンポーネントの多重化
1505 ワード
コンポーネントは多重化可能なVueインスタンスです
1.new Vueによって作成されたVueルートのインスタンスで、このコンポーネントをカスタム要素として使用できます.
注意ボタンをクリックすると、各コンポーネントは独立してcountを維持します.コンポーネントを使うたびに新しいものがあるからです
≪インスタンス|Instance|emdw≫
作成されます.
このコンポーネントを定義すると、dataがこのように直接オブジェクトを提供していないことがわかります.
コンポーネントのdataオプションは関数でなければなりません
これにより、各インスタンスは、返されるオブジェクトの独立したコピーを維持できます.
2.
Vueにこのルールがない場合は、ボタンをクリックすると次のコードのように影響する可能性があります.
1.new Vueによって作成されたVueルートのインスタンスで、このコンポーネントをカスタム要素として使用できます.
注意ボタンをクリックすると、各コンポーネントは独立してcountを維持します.コンポーネントを使うたびに新しいものがあるからです
≪インスタンス|Instance|emdw≫
作成されます.
このコンポーネントを定義すると、dataがこのように直接オブジェクトを提供していないことがわかります.
data: {
count: 0
}
だからコンポーネントのdataオプションは関数でなければなりません
これにより、各インスタンスは、返されるオブジェクトの独立したコピーを維持できます.
data: function () {
return {
count: 0
}
}
コード:
Vue.component("jishuqi",{
data:function () {
return {
count:0
}
},
template:'<button v-on:click="count+=1"> {{count}} </button>'
})
var v=new Vue({
el:"#pp"
})
実行結果:2.
Vueにこのルールがない場合は、ボタンをクリックすると次のコードのように影響する可能性があります.
{{counter}}
var v=new Vue({
el:"#p",
data:{
counter:0
}
})
実行結果: