<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v-model 双向绑定</title>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.min.js"></script>
</head>
<style>
* {
padding: 0;
margin: 0;
}
#v-model {
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-evenly;
width: 100%;
height: 200px;
}
</style>
<body>
<div id="v-model">
<h3>v-model 双向绑定底层代码实现</h3>
<!-- 第一种实现方式 -->
<input type="text" :value='name' @input="changeModel" >
<!-- <input type="text" :value='name' @input="name = $event.target.value" > 第二种实现方式 -->
<p>{{name}}</p>
</div>
<script>
let vm = new Vue({
el: "#v-model",
data(){
return{
name:'LBJ'
}
},
methods:{
// 第一种实现方式
changeModel(event){
this.name = event.target.value
}
}
})
</script>
</body>
</html>
以上代码是如何使用 v-bind 和事件对象方法实现 v-model 的双向绑定效果,当然了建议你看一下源码,巧了我下一篇就是的,哈哈哈。 简单来说, v-modeL 是双向的数据绑定,而 v-bind 是单向的绑定,而且这个绑定类型还挺多,比如对象、以及所有的属性(src、class等)