Vue.js:v-model指令实现vue变量和表单标签的value属性双向绑定

1- v-model指令

实现vuejs变量和表单标签的value属性双向绑定

语法: v-model="vue数据变量"

双向数据绑定

  • 数据变化 -> 视图自动同步
  • 视图变化 -> 数据自动同步

1.1在select下拉菜单中使用

v-model写在select上,value写在option上, Vue变量关联value属性的值

<template>
  <div>
    <div>
      <span>用户名:</span>
      <input type="text" v-model="username" />
    </div>
    <div>
      <span>密码:</span>
      <input type="password" v-model="pass" />
    </div>
    <div>
      <span>来自于: </span>
      <!-- 下拉菜单要绑定在select上 -->
      <select v-model="from">
        <option value="北京市">北京</option>
        <option value="南京市">南京</option>
        <option value="武汉市">天津</option>
      </select>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: "",
      pass: "",
      from: ""
    }
  }
};
</script>

暂时只说用在表单元素上,组件之后会讲v-model高级用法

1.2在复选框使用

变量为非数组, 则绑定的是checked的属性(true/false) - 常用于: 单个绑定使用
需要注意的是:变量为数组, 则绑定的是他们的value属性里的值 - 可以收集勾选了的value值

<template>
  <div>
    <div
      style="display: inline-block"
      v-for="(item, index) in arr" :key="index"
    >
      <input type="checkbox" v-model="newArr" :value=item />
      <span>{{ item }}</span>
    </div>
    <p>选中的元素, 累加值为: {{sum}}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
        //初始数据
      arr: [9, 25, 19, 96, 29, 31, 48, 57, 62, 79, 87],
        //选中复选框时,收集的value值,
      newArr: []
    }
  },
  computed: {
    sum(){
      return this.newArr.reduce((acc, value) => acc + value, 0)
    }
  }
};
</script>

因为数据双向绑定,相互影响,Vue变量初始值会影响表单的默认状态

2- 补充:v-model修饰符

语法:v-model.修饰符="vue数据变量"

  • .number 以parseFloat转成数字类型
  • .trim 去除首尾的空白字符
  • .lazy 在change时触发而非input时
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒来暑往秋收冬藏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值