vue 利用v-model实现父子组件数据双向绑定 (input)

一、实现动态传值

<div id="box">
    <new-input v-model="name"></new-input>
    {{name}}
</div>
<script>
Vue.component('new-input',{
    props: ['value'],
    template:'<label><input type="text" v-model="newValue" /> 你的名字:</label>',
    computed:{
        newValue: {
            get:function() {
                return this.value; 
            },
            set:function(value) {
                  this.$emit('input', value);
            }
        }
    },
});
new Vue({
    el:'#box',    
    data: {
        name:'nick'        
    }
});
</script>

二、v-model实现原理

<div id="box">
<input :value="name" @input="changeValue($event.target.value)"/>
{{ name }}
</div>
<script>
new Vue({
el:'#box',    
data: {
name:'nick'    
},
methods:{
changeValue:function(value){
this.name = value;
}    
}
});
</script>

猜你喜欢

转载自www.cnblogs.com/zhukaijie/p/12096130.html