二、基本语法
目录:v-bind、v-if、v-else-if、v-else、v-for、v-on
1.v-bind
已经成功创建了第一个Vue应用。看起来这跟渲染一个字符串模板非常类似,但是Vue在背后做了大量的工作。现在数据和DOM已经被建立了关联,所有东西都是响应式的。在控制台操作对象属性,界面可以实时更新。
可以使用v-bind来绑定元素特性。
v-bind
鼠标悬停几秒钟查看此处动态绑定的时间信息
var app = new Vue({
el: '#app',
data: {
message: '页面加载时间:' + new Date().toLocaleString()
}
})
像v-bind等被成为指令。指令带有前缀v-,以表示它们是Vue提供的特殊特性。它们会在渲染的DOM上应用特殊的响应式行为。在这里该指令的意思是:将这个元素节点的title特性和Vue实例的message属性保持一致。
如果再次打开浏览器的JavaScript控制台,输入app.message=’新消息’,就会再一次看到这个绑定了title特性的HTML已经进行了更新。
2.v-if,v-else
条件判断语句
- v-if
- v-else
v-if,v-else
YES
NO
var vm = new Vue({
el: '#vue',
data: {
ok: true
}
});
测试:①在浏览器上运行,打开控制台。
②在控制台输入vm.ok=false,然后回车,会发现浏览器中显示的内容会直接变成NO。
注:使用v-*属性绑定数据是不需要双花括号包裹的。
3.v-else-if
- v-if
- v-else-if
- v-else
v-else-if
A
B
C
who
var vm = new Vue({
el: '#vue',
data: {
type: 'A'
}
});
测试:观察在控制台分别输入vm.type=’B’、’C’、’D’的变化。
注:===三个等号在JS中表示绝对等于(就是数据与类型都要相等)。
4.v-for
格式说明:
{{ item.message }}
注:items是数组,item是数组元素迭代的别名。之后学习的Thymeleaf模板引擎的语法与之十分的相似。
v-for
{{ item.message }}
var vm = new Vue({
el: '#vue',
data: {
//items数组
items: [
{message: '前端'},
{message: 'Vue'},
{message: 'Java'}
]
}
});
测试:在控制台输入vm.items.push({message: ‘运维’}),尝试追加一条数据,会发现浏览器中显示的内容会增加一条 运维。
5.v-on
监听事件
事件有Vue的事件和前端页面本身的一些事件。下面的click是Vue的事件,可以绑定到Vue中的methods中的方法事件。
v-on
var vm = new Vue({
el: '#vue',
data: {
message: 'Hello World'
},
//方法必须定义在Vue实例的methods对象中
methods: {
sayHi: function (e) {
//this在方法里指向Vue实例
alert(this.message);
}
}
});