v-model其实是一个语法糖,它的背后本质上是包含两个操作:
1.v-bind绑定一个value属性
2.v-on指令给当前元素绑定input事件
<input type="text" v-model="message">
等同于
<input type="text" v-bind:value="message" v-on:input="message = $event.target.value">
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div id="app">
  <!--<input type="text" v-model="message">-->
  <!–<input type=”text” :value=”message” @input=”valueChange”>–>
  <input type=“text“ :value=“message“ @input=“message = $event.target.value“>
  <h2>{{message}}</h2>
</div>
<script src=“../js/vue.js“></script>
<script>
  const app = new Vue({
    el: ‘#app’,
    data: {
      message: ‘你好啊’
    },
    methods: {
      valueChange(event) {
        this.message = event.target.value;
      }
    }
  })
</script>
</body>
</html>
:hexoPostRenderEscape–>
修饰符
lazy修饰符:
 默认情况下,v-model默认是在input事件中同步输入框的数据的。
 也就是说,一旦有数据发生改变对应的data中的数据就会自动发生改变。
 lazy修饰符可以让数据在失去焦点(blur)或者回车时才会更新:
number修饰符:
 默认情况下,在输入框中无论我们输入的是字母还是数字,都会被当做字符串类型进行处理。
 但是如果我们希望处理的是数字类型,那么最好直接将内容当做数字处理。
 number修饰符可以让在输入框中输入的内容自动转成数字类型
trim修饰符:
 如果输入的内容首尾有很多空格,通常我们希望将其去除
 trim修饰符可以过滤内容左右两边的空格
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div id="app">
  <!--1.修饰符: lazy-->
  <input type=“text“ v-model.lazy=“message“>
  <h2>{{message}}</h2>
  <!–2.修饰符: number–>
  <input type=“number“ v-model.number=“age“>
  <h2>{{age}}-{{typeof age}}</h2>
  <!–3.修饰符: trim–>
  <input type=“text“ v-model.trim=“name“>
  <h2>您输入的名字:{{name}}</h2>
</div>
<script src=“../js/vue.js“></script>
<script>
  const app = new Vue({
    el: ‘#app’,
    data: {
      message: ‘你好啊’,
      age: 0,
      name: ‘’
    }
  })
  var age = 0
  age = ‘1111’
  age = ‘222’
</script>
</body>
</html>
:hexoPostRenderEscape–>
- 本文链接:http://horry233.github.io/2020/10/13/v-bind%E5%92%8Cv-model/
 - 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
 
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub Issues