模板语法
插值
数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值:
| <span>Message: {{ msg }}</span>
|
Mustache 标签将会被替代为对应数据对象上 msg 属性的值。无论何时,绑定的数据对象上 msg 属性发生了改变,插值处的内容都会更新。
双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html 指令:
| <p>Using mustaches: {{ rawHtml }}</p>
<p>Using v-html directive: <span v-html="rawHtml"></span></p>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | <div id="app">
<div>{{ name }}</div>
<div v-text="name"></div>
<div v-html="name"></div>
<div>{{ name2 }}</div>
<div v-text="name2"></div>
<div v-html="name2"></div>
</div>
<script>
var vm = new Vue({
el: "#app",
data: {
name: "nocilantro",
name2: "<h1>nocilantro</h1>"
}
})
</script>
|
对于所有的数据绑定,Vue.js 都提供了完全的 JavaScript 表达式支持。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | <div id="app">
<div>{{ name + ' hhh' }}</div>
<div v-text="name + ' hhh'"></div>
<div v-html="name"></div>
<div>{{ name2 }}</div>
<div v-text="name2"></div>
<div v-html="name2 + ' wulalala'"></div>
</div>
<script>
var vm = new Vue({
el: "#app",
data: {
name: "nocilantro",
name2: "<h1>nocilantro</h1>"
}
})
</script>
|
指令
一些指令能够接收一个“参数”,在指令名称之后以冒号表示。例如,v-bind 指令可以用于响应式地更新 HTML 特性:
| <a v-bind:href="url">...</a>
|
在这里 href 是参数,告知 v-bind 指令将该元素的 href 特性与表达式 url 的值绑定。
另一个例子是 v-on 指令,它用于监听 DOM 事件:
| <a v-on:click="doSomething">...</a>
|
缩写
| <!-- 完整语法 -->
<a v-bind:href="url">...</a>
<!-- 缩写 -->
<a :href="url">...</a>
|
| <!-- 完整语法 -->
<a v-on:click="doSomething">...</a>
<!-- 缩写 -->
<a @click="doSomething">...</a>
|