v-model
是Vue中实现双向数据绑定的指令。
看下面的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-model指令的学习</title>
</head>
<body>
<div id="app">
<h4>{{ msg }}</h4>
</div>
<script src="lib/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
msg: '双向数据绑定'
},
methods: {}
})
</script>
</body>
</html>
上面的vm实例是在浏览器内存中创建的,创建完成后,可以通过window.vm
访问到这个实例:
打开这个对象,可以找到msg
对象:
也就是说在data上定义的属性会自动挂载到vm对象上,所以我们可以用this.msg
可以访问到data上的属性。
下面我们通过浏览器控制台修改msg
的值:
我们发现页面上的值也自动改变了,这还不算双向数据绑定,这个是单向数据绑定。为了实现双向数据绑定,我们添加一个表单元素,代码如下:
<!DOCTYPE html>
<html lang="en" xmlns:v-model="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>v-model指令的学习</title>
</head>
<body>
<div id="app">
<h4>{{ msg }}</h4>
<input type="text" v-model="msg" style="width: 100%">
</div>
<script src="lib/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
msg: '双向数据绑定'
},
methods: {}
})
</script>
</body>
</html>
页面如下:
改变文本框(View)中的值也会改变控制台(Model)中的值,改变控制台(Model)中的值也会改变文本框(View)中的值:
所以我们使用v-model
实现了双向数据绑定。
注意:
v-model
只能运用在表单元素中v-bind
不能实现双向数据绑定,只能实现单向数据绑定
推荐阅读:
Vue系列教程(一)基础介绍
Vue系列教程(二)v-cloak、v-text、v-html的基本使用
Vue系列教程(三)v-bind指令
Vue系列教程(四)v-on指令定义事件
Vue系列教程(五)跑马灯效果案例
Vue系列教程(六)事件修饰符
Vue系列教程(七)v-model和双向数据绑定