vue-:model和v-model的区别

父组件

  <div>
      <input type="text" v-model='msg'>
      <child v-model='msg'></child>
  </div>

 子组件

 1  Vue.component('child', {
 2       props: ['value'],
 3       template: '<input type="text" @input="handleInput" :value=value />',
 4       methods: {
 5         handleInput(e){
 6           console.log(e);
 7           this.$emit('input', e.target.value);
 8         }
 9       }
10     })
11    new Vue({
12     el:'#example',
13     data:{
14       msg:'好天气',
15       parentMsg:''
16     }
17    })  

无论改变父组件还是子组件的输入框,value和msg的值都会改变,两个输入框的值也就同时改变了。

 

 :model和v-model的区别
     :model是v-bind:model的缩写,<child :model="msg"></child>这种只是将父组件的数据传递到了子组件,并没有实现子组件和父组件数据的双向绑定。当然引用类型除外,子组件改变引用类型的数据的话,父组件也会改变的。

本质是:

v-model是内置的数据双向绑定

model是绑定自定义属性model ,model相当于 v-bind:model

 

posted @ 2020-12-15 10:26  zzzzzyyyyyy  阅读(465)  评论(0编辑  收藏  举报