Vue — 使用v-bind与v-on实现v-model
v-model其实是一个语法糖,他的背后本质包含两个操作:
1.v-bind
绑定一个value
属性
2.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>
全部代码:
代码语言:javascript复制<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>
总结: 以下两种方式是等同的
代码语言:javascript复制<input type="text" v-model = 'message'>
<input type="text" :value = 'message' @input='message = $event.target.value'>