模板语法
Vue的使用需要先New一个Vue对象,对象内包括el,data,methods三个属性。1
2
3
4
5
6
7
8
9
10
11var vm = new Vue({
el: 'body',
data: {
msg:'hello world',
alexa: "10000"
},
methods: {
details: function() {
return 'Vue起步';
}
}
1.el:声明作用域,如body——只能作用于body的标签之内。
2.data:用于储存需要用到的数据。
3.methods:可在里面定义函数,可在html中调用此处的函数。1
2
3<body>
<div @click='details'>{{msg}}</div>
</body>
这个时候,div框内就会显示hello world,也就是msg变量的值(引用时需要用两个花括号符号包裹),而点击div时就会触发点击事件,调用details函数。
常用指令
v-model双向绑定数据
1 | <input type="text" v-model="msg"/> {{msg}} |
此处的input用v-model绑定了msg这个变量,也就是说当input框内输入信息时,后面的msg处也会显示一样的信息。
v-for循环
1 | <div id="box"> |
item为循环中的每一项,虽然html中只写了一个li标签,但是由于循环的数组中有四个元素,所以最终会有4个li标签。
v-if
v-if=”表达式”,根据表达式的结果来判断,是true则渲染元素,false则将元素注释掉
v-show显示与隐藏
v-show与v-if类似,true就渲染,但是false并不是注释掉,而是通过display:none;来将元素隐藏,如果需要来回切换,使用v-show更好。
v-once:不允许修改v-if数据
例如HTML中有如下三个标签:1
2
3
4
5<div id="app">
<p v-once>{{msg}}</p>
<p>{{msg}}</p>
<input type="text" v-model="msg">
</div>
在input框内输入内容后,会传到msg变量中,第二个p标签内显示的信息会随着msg发生变化,而第一个带有v-once的p标签则只会显示msg的初始值,不会随之变化。
v-text
向标签内注入数据,并且覆盖标签内的其他内容.
v-html
向标签内覆盖注入HTML内容作为其子元素。