JSFiddle - React, Tailwind, and code Playground
by flourscent
HTML
<script src="https://unpkg.com/[email protected]"></script>
<div id="fruits-counter">
<div v-for="fruit in fruits">
{{fruit.name}}: <counter-button v-on:increment="incrementCartStatus()"></counter-button>
</div>
<p>합계: {{total}}</p>
</div>
<script>
var counterButton = Vue.extend({
template: '<span>{{counter}}개 <button v-on:click="addToCart">추가</button></span>',
data: function () {
return {
counter: 0
}
},
methods: {
addToCart: function () {
this.counter += 1
this.$emit('increment') // increment 커스텀 이벤트 발생
}
},
})
new Vue({
el: '#fruits-counter',
components:{
'counter-button': counterButton
},
data: {
total: 0,
fruits: [
{name: '배'},
{name: '딸기'}
]
},
methods: {
incrementCartStatus: function () {
this.total += 1
}
}
})
</script>