zoukankan      html  css  js  c++  java
  • 自定义组件实现v-model

    自定义组件也是可以实现v-model双向绑定的。
    Vue 官方文档介绍如下:

    一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件。

    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)"
        >
      `
    })
    

      这样,我们就可以在自定义组件使用v-model了:

    <base-checkbox v-model="lovingVue"></base-checkbox>
    

      

    需要注意的是:

    1. model:{prop:'checked'} 这里的checked 必须在props 里也有声明;
    2. model.prop 绑定的变量命名不能是关键字。如:value
    3. model.prop绑定的变量不要在自定义组件里直接改动。需要调用model.event来修改绑定的变量的值。例如,上面的例子,就不能在自定义组件内再对checked进行双向绑定。
  • 相关阅读:
    hdoj:2075
    hdoj:2072
    hdoj:2071
    hdoj:2070
    hdoj:2069
    test001
    hdoj:2067
    hdoj:2061
    hdoj:2058
    hdoj:2057
  • 原文地址:https://www.cnblogs.com/yn-cn/p/13830494.html
Copyright © 2011-2022 走看看