Vue.js .sync修飾子
<my-shop :name.sync="name" :price.sync="price"></my-shop>
Vue.component('my-shop', {
template: `
<div class="my-shop">
<p>商品名: {{ name }} 価格: {{ price }}</p>
<p>
商品名: <input v-model="localName">
価格: <input type="number" v-model="localPrice">
</p>
</div>`,
props: {
name: String,
price: Number
},
computed: {
localName: {
get() {
return this.name
},
set(val) {
this.$emit('update:name', val)
}
},
localPrice: {
get() {
return this.price
},
set(val) {
this.$emit('update:price', val)
}
}
}
})
new Vue({
el: '#app',
data: {
name: 'HDD',
price: 5000
}
})
元記事に戻る