v-model不过是语法糖

1.v-model介绍

v-model指令用来在input、select、text、checkbox、radio等表单控件元素上创建双向数 据绑定。v-model实际上是语法糖,是一种简便写法。

2.用例剖析

//触发oninput事件 value
<input v-model="username"  />
<input :value="username" @input="username=$event.target.value" />

//触发onchanged事件 checked
<input type=checkbox :checked="signal" @change="signal=$event.target.checked" /> 

//iview Checkbox 组件 基于 vuex 状态管理
<Checkbox v-model="!$store.state.sortAsc" @on-change="sortChange($event.target.checked)">倒序排列</Checkbox>

methods:{
    noteSortChange (checked) {
        this.$store.commit('vSortDesc', checked)
    }
}

const mutations = {
  vSortDesc: (state, payload) => {
    state.sortAsc = payload
  }
}

3.官方案例

允许一个自定义组件在使用 v-model 时定制 prop 和 event。默认情况下,一个组件上的 v-model 会把 value 用作 prop 且把 input 用作 event,但是一些输入类型比如单选框和复选框按钮可能想使用 value prop 来达到不同的目的。使用 model 选项可以回避这些情况产生的冲突。

原文引自 https://cn.vuejs.org/v2/api/

Example:
Vue.component('my-checkbox', {
  model: {
    prop: 'checked',
    event: 'change'
  },
  props: {
    // this allows using the `value` prop for a different purpose
    value: String,
    // use `checked` as the prop which take the place of `value`
    checked: {
      type: Number,
      default: 0
    }
  },
  // ...
})
<my-checkbox v-model="foo" value="some value"></my-checkbox>
上述代码相当于:
<my-checkbox
  :checked="foo"
  @change="val => { foo = val }"
  value="some value">
</my-checkbox>

注:总结常规的使用及说明,后续会不断更新,如有疑问见解多多交流

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,088评论 0 29
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 2,268评论 0 6
  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 11,135评论 4 129
  • “吴冬梅自杀了,冤孽啊!” 病休加暑假,三个月后,八月底,张明带着新婚妻子返校。没过几天,吴翠华把他拉到僻静处,告...
    ZHANG顽石点头阅读 305评论 0 0