v-model本质上就是监听用户的input事件来更新数据,以及对一些情况做特殊管理.而数据的来源便是vue实例中的data. 主要就是data v-bind v-on 1.先是从data里面的数据msg通过绑定到input控件和p标签上。然后input上通过v-on:input监听控件,触发change()。 调用方法都可以默认获取e事件,e.target.value是获取调用该方法的DOM对象的value值。把value值在赋给data里的msg,就是实现了双向数据绑定的原理了。
<template> <div> <input type="text" v-bind:value='msg' v-on:input='change' /> <p>{{ msg }}</p> </div> </template> <script> new Vue({ el:'#app', data (){ return { msg:'hello双向数据绑定' } }, methods:{ change(e){ this.msg = e.target.value; } } }) </script>