Vue v-model

本文详细介绍了Vue中的v-model在不同表单元素(如text、textarea、checkbox、radio和select)中的应用,展示了如何通过渲染函数理解其背后的property和emit事件。
摘要由CSDN通过智能技术生成

Vue v-model

v-model可以在表单元素中实现数据双向绑定功能,根据不同的表单空间自动选取正确的property和emit事件。

  1. text和textarea元素使用value和input事件
  2. checkbox和radio使用checked和change事件
  3. select使用value和change事件
// text
template: `
 <div>
    <input v-model="message"></input>
    <div>message:{{message}}</div>
  </div>
`,
data: {
  message: ''
},

// checkbox
template: `
  <div>
    <input type="checkbox" v-model="checked"></input>
    <div>选中情况:{{checked}}</div>
  </div>
`,
data: {
  checked: false
},

template: `
  <div>
    <input type="checkbox" id="1" value="1" v-model="checkedValues"></input>
    <input type="checkbox" id="2" value="2" v-model="checkedValues"></input>
    <input type="checkbox" id="3" value="3" v-model="checkedValues"></input>
    <div>多个复选框选中情况:{{checkedValues}}</div>
  </div>
`,
data: {
  checkedValues: []
},

// radio
template: `
  <div>
    <input type="radio" id="1" value="1" v-model="picked"></input>
    <input type="radio" id="2" value="2" v-model="picked"></input>
    <div>选中情况:{{ picked }}</div>
  </div>
`,
data: {
  picked: ''
},

// select
template: `
  <div>
    <select v-model="selected">
      <option disabled value="">请选择</option>
      <option>A</option>
      <option>B</option>
      <option>C</option>
    </select>
    <div>选中情况:{{ selected }}</div>
  </div>
`,
data: {
  selected: ''
},

可以通过渲染函数看到使用的是什么propety和事件,下面以input为例:

function render() {
  with(this) {
    return _c('div', [_c('input', {
      directives: [{
        name: "model",
        rawName: "v-model",
        value: (message),
        expression: "message"
      }],
      domProps: {
        "value": (message)
      },
      on: {
        "input": function ($event) {
          if ($event.target.composing) return;
          message = $event.target.value
        }
      }
    }), _c('div', [_v("message:" + _s(message))])])
  }
}

模板编译网址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值