Vue v-model的使用

v-model的使用

v-model在Vue用于表单值和数据的双向绑定

  1. 基本使用
<body>
  <div id="app">
    <!-- <input type="text" v-model="message"> -->
    <!-- 等同于以下代码,使用v-bind和v-on两个指令实现双向绑定 -->
    <!-- input表单有一个input事件,当表单中的内容产生变化时触发 -->
    <!-- $event获取当前事件 -->
    <input type="text" :value="message" @input="message=$event.target.value">
    {{message}}
  </div>
  <script>
    const vm = new Vue({
      el: '#app',
      data: {
        message: "v-model的基本原理"
      },
      methods: {},
      computed: {}
    });
  </script>
</body>

在这里插入图片描述

当表单中的内容随data中的message改变而改变,同样的message也随表单内容改变而改变。

  1. v-model结合radio使用
<body>
  <div id="app">
<label for="male">
  <input type="radio" name="sex" value="男性" id="male" v-model="sex"> 男
</label id="female">
  <input type="radio" name="sex" value="女性" id="female" v-model="sex"> 女
  <label>
    {{sex}}
  </div>
  <script>
    const vm = new Vue({
      el: '#app',
      data: {
        sex:'女性'
      },
      methods: {},
      computed: {}
    });
  </script>
  1. v-model结合checkbox使用

v-model结合checkbox使用需要注意的是单选和多选两种情况。当为单选复选框时,此时绑定的value值为true和false,常见用用户勾选同意协议以进行下一步一类操作。多选复选框时绑定的值就是value。

 <!-- 单个复选框,绑定的值为 true 和 false -->
    <label for="lisence">
      <input type="checkbox" v-model="isAgree" id="lisence">阅读并同意协议
    </label>   <br />
    <input type="radio" :disabled="!isAgree">下一步
    <!-- 复选 -->
    <input type="checkbox" value="篮球" v-model="hobbies">篮球
    <input type="checkbox" value="乒乓球" v-model="hobbies">乒乓球
    <input type="checkbox" value="足球" v-model="hobbies">足球
    {{hobbies}}
  </div>

  <script>
    const vm = new Vue({
      el: '#app',
      data: {
        isAgree:'',
        hobbies:[]
      },
      methods: {},
      computed: {}
    });
  </script>

在这里插入图片描述
在这里插入图片描述

v-model还可以与其它表单项如select,password结合使用,此处不再列举。

  1. v-model修饰符

    • lazy 默认情况下v-model在input事件中同步输入框的数据,lazy修饰符可以让数据失去焦点或者回车时才更新 –

    • number 默认情况下无论输入框输入的是数字还是文本,都会被当成String类型处理,number修饰符是将其装换成数字类型

    • trim,自动过滤输入内容首尾含有的空格

<div id="app">
    
    <input type="text" v-model.lazy="message1" >{{message1}}
   
    <input type="number" v-model.number="message2"> 
   
    <input type="text" v-model.trim="message3">{{message3}}
  </div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值