v-model使用

1、使用原理

v-model其实只是一个语法糖,它可以通过两个指令实现,一个是v-bind(语法糖冒号)和v-on(语法糖@)实现(以下示例我们有两种方式让input的值和message绑定,一个是直接在html中指定message=$event.target.value,也可以在methods中设置—这些是js的基础)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script src="../js/vue.js"></script>
<div id="app">

  <!--<input :value="message" @input="message = $event.target.value"/>{{message}}-->
  <input :value="message" @input="bindVal"/>{{message}}
  <textarea v-model="message"></textarea>
</div>
<script>
  // v-model其实只是一个语法糖,它可以通过两个指令实现,一个是v-bind(语法糖冒号)和v-on(语法糖@)实现,这里我们有两种方式让input的
  //值和message绑定,一个是直接在html中指定message=$event.target.value,也可以在methods中设置
  const app = new Vue({
      el: '#app',
      data: {
        message: '你好'
      },
      methods: {
        bindVal () {
          this.message = event.target.value
        }
      }
    })

</script>

</body>
</html>

2、v-model和不同表单元素结合使用

参考官网文档

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script src="../js/vue.js"></script>
<div id="app">
  <!--结合radio使用,v-model绑定的value默认是input中的value,一定要指定value-->
  <label for="male">
    <input type="radio" id="male" value="" v-model="sex"></label>
  <label for="female">
    <input type="radio" id="female" value="" v-model="sex"></label>
  <!-- 结合checkbox:单选框使用,v-model绑定的是布尔值-->
  <label for="singleBox">
  <input type="checkbox" id="singleBox" value='singleBoxVal'v-model="singleBoxModel">
  </label>
  <!-- 结合checkbox:复选框使用 v-model绑定value,对应的变量名要定义成数组-->
  <label for="checkbox">checkbox</label>
  <input type="checkbox" id="checkbox2" value='checkbox2'v-model="checkeNames">
  <label for="checkbox2">checkbox2</label>
  <input type="checkbox" id="jack" value="Jack" v-model="checkeNames">
  <label for="jack">Jack</label>
  <!--结合select单选使用 ,注意v-model放在select节点上面-->
  <select v-model="fruit">
    <option disabled value="">请选择</option>
    <option  value="香蕉">香蕉</option>
    <option  value="苹果">苹果</option>
    <option  value=""></option>
    <option  value="榴莲">榴莲</option>
  </select>
  <!--结合select多选使用,和单选相差不大,需要注意的就是v-model变量要是数组 -->
  <select v-model="fruits" multiple>
    <option disabled value="">请选择</option>
    <option  value="香蕉">香蕉</option>
    <option  value="苹果">苹果</option>
    <option  value=""></option>
    <option  value="榴莲">榴莲</option>
  </select>
  <!-- v-for遍历select:需要注意的是option中的value,因为是动态绑定的,所以要用冒号-->
  <select v-model="forFruit">
    <option v-for="item in fruitHome" :value="item.key">{{item.name}}</option>
  </select>

  <h2>{{sex}}</h2>
  <h2>{{singleBoxModel}}</h2>
  <h2>{{checkeNames}}</h2>
  <h2>{{fruit}}</h2>
  <h2>{{forFruit}}</h2>
</div>
<script>
  const app = new Vue({
      el: '#app',
      data: {
        message: '你好',
        singleBoxModel:false,
        sex: '',
        checkeNames: [],
        fruit: '梨',
        fruits: [],
        fruitHome: [
          {key: 'banana', name:'香蕉'},
          {key: 'apple', name:'苹果'},
          {key: 'pear', name:'梨'},
          {key: 'durian', name:'榴莲'}
        ],
        forFruit: 'banana'
      }
    })

</script>

</body>
</html>

3、v-model修饰符

参考官网文档
主要有.trim .lazy .number修饰符

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script src="../js/vue.js"></script>
<div id="app">
  <input v-model.lazy="message"/>
  <input type="text" v-model.number="age"/>
  <input type="text" v-model.trim="trimMsg"/>
  <div>{{message}}</div>
  <div>{{age}}</div>
  <div>{{trimMsg}}</div>
</div>
<script>
  const app = new Vue({
      el: '#app',
      data: {
        message: '你好',
        trimMsg:'',
        age:12
      }
    })

</script>

</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值