1. 程式人生 > >VUE 學習筆記 三 模板語法

VUE 學習筆記 三 模板語法

1.插值

a.文字

資料繫結最常見的形式就是使用“Mustache”語法 (雙大括號) 的文字插值

<span>Message: {{ msg }}</span>

v-once 指令,你也能執行一次性地插值,當資料改變時,插值處的內容不會更新

<span v-once>這個將不會改變: {{ msg }}</span>

b.原始HTML

雙大括號會將資料解釋為普通文字,而非 HTML 程式碼。為了輸出真正的 HTML,你需要使用 v-html 指令

<p>Using mustaches: {{ rawHtml }}</
p> <p>Using v-html directive: <span v-html="rawHtml"></span></p>

注意: 站點上動態渲染的任意 HTML 可能會非常危險,因為它很容易導致 XSS 攻擊。請只對可信內容使用 HTML 插值,絕不要對使用者提供的內容使用插值。

c.特性

Mustache 語法不能作用在 HTML 特性上,遇到這種情況應該使用 v-bind 指令:

<div v-bind:id="dynamicId"></div>

在布林特性的情況下,它們的存在即暗示為 true,v-bind 工作起來略有不同,在這個例子中:

<button v-bind:disabled="isButtonDisabled">Button</button>

如果 isButtonDisabled 的值是 null、undefined 或 false,則 disabled 特性甚至不會被包含在渲染出來的 <button> 元素中。

d.使用 JavaScript 表示式

{{ number + 1 }}

{{ ok ? 'YES' : 'NO' }}

{{ message.split('').reverse().join('') }}

<div v-bind:id
="'list-' + id"></div>

2.指令

指令 (Directives) 是帶有 v- 字首的特殊特性。指令特性的值預期是單個 JavaScript 表示式 (v-for 是例外情況,稍後我們再討論)。指令的職責是,當表示式的值改變時,將其產生的連帶影響,響應式地作用於 DOM。

<p v-if="seen">現在你看到我了</p>
這裡,v-if 指令將根據表示式 seen 的值的真假來插入/移除 <p> 元素。

a.引數

一些指令能夠接收一個“引數”,在指令名稱之後以冒號表示。例如,v-bind 指令可以用於響應式地更新 HTML 特性

<a v-bind:href="url">...</a>

在這裡 href 是引數,告知 v-bind 指令將該元素的 href 特性與表示式 url 的值繫結。

另一個例子是 v-on 指令,它用於監聽 DOM 事件:

<a v-on:click="doSomething">...</a>

b.修飾符

修飾符 (Modifiers) 是以半形句號 . 指明的特殊字尾,用於指出一個指令應該以特殊方式繫結。例如,.prevent 修飾符告訴 v-on 指令對於觸發的事件呼叫 event.preventDefault():

<form v-on:submit.prevent="onSubmit">...</form>

3.縮寫

Vue.js 為 v-bind 和 v-on 這兩個最常用的指令,提供了特定簡寫

<!-- 完整語法 -->
<a v-bind:href="url">...</a>
<!-- 縮寫 -->
<a :href="url">...</a>

<!-- 完整語法 -->
<a v-on:click="doSomething">...</a>
<!-- 縮寫 -->
<a @click="doSomething">...</a>