Vue.js 提供了許多內置指令,這些指令用于在模板中添加特殊功能。以下是一些 Vue 的常用內置指令的簡要說明:
-
v-text:
- 更新元素的
textContent
。 - 示例:
<span v-text="message"></span>
- 更新元素的
-
v-html:
- 更新元素的
innerHTML
。 - 注意:插值
<div>{{ someHTML }}</div>
將轉義 HTML,而v-html
不會。 - 示例:
<div v-html="rawHtml"></div>
- 更新元素的
-
v-show:
- 根據表達式的真假值,切換元素的
display
CSS 屬性。 - 示例:
<p v-show="isVisible">Hello</p>
- 根據表達式的真假值,切換元素的
-
v-if:
- 根據表達式的真假值,條件性地渲染一個元素。
- 當條件為假時,元素及其子元素不會被渲染到 DOM 中。
- 示例:
<p v-if="isVisible">Hello</p>
-
v-else:
- 與
v-if
或v-else-if
一起使用,表示“否則”的條件塊。 - 示例:
<p v-if="isA">A</p> <p v-else-if="isB">B</p> <p v-else>Not A/B</p>
- 與
-
v-else-if:
- 表示“否則如果”的條件塊,與
v-if
一起使用。 - 示例同上。
- 表示“否則如果”的條件塊,與
-
v-for:
- 基于源數據多次渲染一個元素或模板塊。
- 可以使用
(item, index) in items
的形式來訪問每個元素。 - 示例:
<div v-for="(item, index) in items" :key="index">{{ item }}</div>
-
v-on 或
@
:- 監聽 DOM 事件,并在觸發時運行一些 JavaScript 代碼。
- 示例:
<button v-on:click="counter += 1">Add 1</button>
或<button @click="counter += 1">Add 1</button>
-
v-bind 或
:
:- 響應式地更新 HTML 屬性。
- 當表達式的值改變時,將更新該屬性。
- 示例:
<img v-bind:src="imageSrc" />
或<img :src="imageSrc" />
-
v-model:
- 在表單
<input>
、<textarea>
及<select>
元素上創建雙向數據綁定。 - 它會根據輸入類型自動選取正確的方法來更新元素。
- 示例:
<input v-model="message" placeholder="edit me" />
- v-pre:
- 跳過這個元素和它的子元素的編譯過程。可以用來顯示原始 Mustache 標簽。
- 示例:
<span v-pre>{{ 這將不會被編譯 }}</span>
- v-cloak:
- 這個指令保持在元素上直到關聯實例結束編譯。和 CSS 規則如
[v-cloak] { display: none }
一起用時,這個指令可以隱藏未編譯的 Mustache 標簽直到實例準備完畢。 - 示例:
<div v-cloak>{{ message }}</div>
- v-once:
- 只渲染元素和組件一次。隨后的重新渲染,元素/組件及其所有的子節點將被視為靜態內容并跳過。這可以用于優化更新性能。
- 示例:
<span v-once>這將不會改變: {{ message }}</span>
以上都是 Vue.js 的核心指令,它們在構建 Vue 應用程序時非常有用。