1. v-model双向绑定是由数据劫持以及发布订阅【观察者模式】实现的,这篇随笔暂时不讲解原理,作为个人小复习.
v-model可以由另一种方式实现:v-bind动态绑定value,配合v-on:input使用,利用event.target.value获取输入框的值,
当输入框的值改变时将其传给Vue实例data中的message.
2. 修饰符
【1】lazy:将v-model默认input事件触发,改为change事件触发,可在用户输入完毕后再改变值
【2】number:将输入的值转换为Number类型
【3】trim:将自动过滤用户输入的首尾空白字符
3. demo:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>v-model</title> </head> <body> <div id="app"> <input type="text" v-model.lazy.trim="message"> <p>{{message}}</p> <!-- v-model的另外一种实现方式 --> <!--<input type="text" @input="console" :value="message">--> <!--<p>{{message}}</p>--> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> <script> const app = new Vue({ el: '#app', data() { return { message: '' } }, methods: { console(e) { this.message = e.target.value; } } }) </script> </body> </html>