v-model的修饰符

v-model:用于在表单控件以及组建上创建的双向数据绑定

先来举个例子:

<body>
  <div id="app">
    <input type="text" v-model="message"><br>
    这里是文本框输入的值——{{message}}
  </div>
</body>
<script>
  var app = new Vue({
    el: '#app',
    data: {
      message: '你好,几何心凉!',
    },
  })
</script>

运行结果如下:
在这里插入图片描述


下面可以更加直白的看到双向关系
1.我们通过在控制台中去改变model中的数据,我们可以发现我们改变model中的message的值,View中的值就跟着改变了在这里插入图片描述

2.我们通过在文本框改变View中的值查看model中的变化,我们发现当我们通过文本框去改变View中的值的时候,其实我们的Model中的值也随之改变了。
在这里插入图片描述


v-model的修饰符

(1).lazy

我们在上面的动图中可以看到通过v-model绑定的文本框只要是文本框的值发生变化了就会更新到Model的数据中,很多时候我们可能连贯实现某种功能但是会影响我们的性能,所以我们用到了.lazy修饰符
他会在我们文本框失去焦点的时候再帮我们将文本框的值同步给Model

<body>
  <div id="app">
   <h3>我是测试——{{message}}</h3>
<input type="text" v-model.lazy="message">
  </div>
</body>
<script>
  var app = new Vue({
    el: '#app',
    data: {
      message: '',
    },
  })
</script>

来看一下效果:
在这里插入图片描述

(2).number

我们还是拿文本框举例,很多时候我们需要一些值让用户填写而这个值可能希望他是数字我们用于计算,这个时候很多同学想到很多办法,转换呀、输入后去判断等等等,但其实v-model中有一个修饰符就可以帮助我们完成这个需求
我们还是通过一个小栗子来看一下,首先我们希望两个文本框各输入一个数值我们进行求和
在这里插入图片描述
可以看一下结果
在这里插入图片描述
我们可以看到并不是我们想要的结果,他是作为拼接而不是求和,那么我们添加上.number修饰符来试试看:

<body>
  <div id="app">
   <h3>我是求和——{{num1+num2}}</h3>
<input type="text" v-model.number="num1">
<input type="text" v-model.number="num2">
  </div>
</body>
<script>
  var app = new Vue({
    el: '#app',
    data: {
      message: '',
      num1: '',
      num2: '',

    },
  })
</script>

在这里插入图片描述

(3).trim

这个大家应该不陌生相对用的比较多,就是去除空格的,但是他只会去除文本框两端的空格,中间的不会去除

<body>
  <div id="app">
   <h3>我是测试——{{message}}</h3>
<input type="text" v-model.trim="message">
  </div>
</body>
<script>
  var app = new Vue({
    el: '#app',
    data: {
      message: '',

    },
  })
</script>

在这里插入图片描述
小常识:
其实这里绑定在文本框上的v-model只不过是语法糖而已,使用 value 属性和 input 事件完成了双向的绑定,文本框的值变化了我们就触发input事件改变我们绑定的值,而同时我们文本框的value值也在与message挂钩

(4)v-cloak

这种在我们实际开发过程中尤其是在我们网络状态不太好或者是后端接口响应比较缓慢的时候出现这种现象,所以就用到我们的v-cloak
其实他的原理就是 display:none 大家应该就明白了,也就是当我们data中绑定的变量具备值之前Dom元素是隐藏的,所以就不会出现上述的问题了

<body>
  <div id="app">
   <h3>我是测试——{{message}}</h3>
  </div>
</body>
<script>
  var app = new Vue({
    el: '#app',
    data: {
      message: '你好几何心凉',
    },
  })
</script>

然后我们发现在页面渲染的时候,会出现以下瞬间
在这里插入图片描述
一闪而过立马
在这里插入图片描述
在这里插入图片描述

注:原文链接:https://blog.csdn.net/JHXL_/article/details/124316664

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值