话很少说,直接上代码javascript
<div id="app">java
<price-input v-bind:value="price" v-on:input="price = arguments[0]" ></price-input>app
<price-input v-model='price' ></price-input>this
<p>{{price}}</p>spa
</div>code
<script type="text/javascript ">component
Vue.component('price-input', {blog
template: '<input :value="value " @input="updateVal" type="text ">',ip
props: ["value "],get
methods: {
updateVal: function() {
let val = event.target.value
this.$emit('input',val);
}
}
});
var app = new Vue({
el: '#app',
data: {
price: ''
},
});
</script>
大体流程为子组件的输入值改变,触发oninput方法,进而经过emit触发实例上的input方法,进而给父组件中的状态赋值。