1. v-bind与v-on实现v-model
v-model其实是一个语法糖,他的背后本质包含两个操作:
① v-bind绑定一个value属性
② v-on指令给当前元素绑定input事件
步骤如下:
① 通过v-bind
实现,若修改app.message
,则使得网页显示的input
中的value
也发生改变。
<body>
<div id="app">
<input type="text" :value='message'>
<h2>{{message}}</h2>
</div>
<script src="../JS/vue.js"></script>
<script>
const app = new Vue({
el:'#app',
data:{
message:'你好!',
}
})
</script>
</body>
② 通过v-on
实现,若通过键入input
,则修改app.message
的值。
<body>
<div id="app">
<input type="text" :value='message' @input='valueChange'>
<h2>{{message}}</h2>
</div>
<script src="../JS/vue.js"></script>
<script>
const app = new Vue({
el:'#app',
data:{
message:'你好!',
},
methods:{
valueChange(event){
app.message = event.target.value;
}
}
})
</script>
</body>
③ 更简单的书写方式实现v-on
根本不用绑定方法
<body>
<div id="app">
<!-- 更简单的书写方式——根本不用绑定方法 -->
<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:'你好!',
}
})
</script>
</body>
2. 全部代码演示:
<body>
<div id="app">
<!-- v-model其实是一个语法糖,他的背后本质包含两个操作:
1.v-bind绑定一个value属性
2.v-on指令给当前元素绑定input事件 -->
<!-- <input type="text" v-model = 'message'> -->
<!-- 上面语句 等同于 下面的连写 -->
<!-- 利用 v-bind: 和v-on: 即可实现 -->
<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){
app.message = event.target.value;
}
}
})
</script>
</body>
![5ab2fefc811429b6418d320706ff321a](https://img-blog.csdnimg.cn/img_convert/2f869d48fe1790a79368f93e2ec0ee8e.png)
3. 总结:
<!-- 方法1-->
<input type="text" v-model = 'message'>
<!-- 方法2-->
<input type="text" :value = 'message' @input='message = $event.target.value'>
以上两种方式是等同的,都能达到我们的目的。