Rumah > Soal Jawab > teks badan
Vue.component('button-counter', {
template: '<button v-on:click="increment()">{{ counter }}</button>',
data: function () {
return {
counter: 0
}
},
methods: {
increment: function () {
this.counter += 1
}
},
})
Sebagai contoh, dalam komponen di atas, saya berharap acara yang didengari oleh v-on diluluskan oleh komponen induk, bukannya menulisnya sebagai klik di sini.
Mestilah tahu guna props untuk hantaran, nak tahu tulis v-on nanti. Jika anda menulis propname terus, Vue akan berfikir bahawa acara yang akan dipantau ialah nama prop, bukan acara khusus.
PHP中文网2017-06-12 09:34:45
Penyoal mempunyai keperluan khas Jika ya, anda mungkin perlu menggunakan render
代替template
:
<p id="app">
<button-counter :event="'click'">abc</button-counter>
</p>
const counter = Vue.component('button-counter', {
render(createElement) {
return createElement(
'button', {
on: {
[this.event]: this.increment,
},
},
`${this.counter}`,
)
},
data() {
return {
counter: 0,
}
},
props: {
event: String
},
methods: {
increment() {
this.counter += 1
},
},
})
new Vue({
el: '#app',
components: {
'button-counter': counter,
},
})
黄舟2017-06-12 09:34:45
Komponen induk menghantar parameter kepada subkomponen melalui props boleh menjadi fungsi, jadi anda boleh menghantar fungsi kepada subkomponen