vue进阶之组件使用v-model(2020疫情后)
资料参阅vue官网
1.首先
1.了解input绑定的v-model实质
//v-model为表单元素输入的双向绑定,在input中 <input v-model="searchText"> 等价于 <input v-bind:value="searchText" v-on:input="searchText = $event.target.value" > //1.将输入框的值绑定到searchText变量上,这个是单向绑定,意味着改变searchText变量的值可以改变input的value,但是改变value不能改变searchText //2.监听input事件(input输入框都有该事件,当输入内容时自动触发该事件),当输入框输入内容就单向改变searchText的值
这样便实现了数据双向绑定
2,在组件上时使用v-model
<custom-input v-model="searchText"></custom-input>
等价于
<custom-input v-bind:value="searchText" v-on:input="searchText = $event" ></custom-input>
其实就是把组件当作一个输入框
所以输入框内就要完成两个动作
1.接受value(用props)
2.在 value的值发生改变的时候 向外触发 并抛出新值
Vue.component('custom-input', {
  props: ['value'],
  template: `
    <input
      v-bind:value="value"
      v-on:input="$emit('input', $event.target.value)"
    >
  `
})
当组件内部value被占用
可以组件内部设置model属性
Vue.component('base-checkbox', {
  model: {
    prop: 'checked',
    event: 'change'
  },
  props: {
    checked: Boolean
  },
  template: `
    <input
      type="checkbox"
      v-bind:checked="checked"
      v-on:change="$emit('change', $event.target.checked)"
    >
  `
})
    本人是一个技术爱好者
1.但是每个技术爱好者都是从萌新开始的
2.我所有的博文都是我各方资料查阅(看的比较乱比较杂,因为有些是群里讨论等等来源,无法辨别出处,所以我的文章都是没有写明出处,都是我个人消化后整理,)
3.但是没有经过我实践的我一般会标注
4.希望大家共同交流共同进步,指出我的不足 谢谢
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号