1. 程式人生 > 其它 >luffy pip換源、建立虛擬環境

luffy pip換源、建立虛擬環境

一、插值

1、文字

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

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

Mustache 標籤將會被替代為對應資料物件上 msg property 的值。無論何時,繫結的資料物件上 msg property 發生了改變,插值處的內容都會更新

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

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

2、原始 HTML

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

指令

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

3、Attribute

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

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

對於布林 attribute (它們只要存在就意味著值為 true),v-bind 工作起來略有不同,在這個例子中:

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

如果 isButtonDisabled 的值是 nullundefined 或 false,則 disabled attribute 甚至不會被包含在渲染出來的 <button> 元素中

4、使用 JavaScript 表示式

對於所有的資料繫結,Vue.js 都提供了完全的 JavaScript 表示式支援,不只是繫結簡單的 property 鍵值,例如:

{{ number + 1 }}

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

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

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

這些表示式會在所屬 Vue 例項的資料作用域下作為 JavaScript 被解析。

有個限制就是,每個繫結都只能包含單個表示式,所以下面的例子都不會生效:

<!-- 這是語句,不是表示式 -->
{{ var a = 1 }}

<!-- 流控制也不會生效,請使用三元表示式 -->
{{ if (ok) { return message } }}

注意:

模板表示式都被放在沙盒中,只能訪問全域性變數的一個白名單,如 Math 和 Date 。

不應該在模板表示式中試圖訪問使用者定義的全域性變數。

 

二、指令

指令:帶有 v- 字首的特殊 attribute

指令 attribute 的值預期是單個 JavaScript 表示式 (v-for 是例外情況)

指令的職責是,當表示式的值改變時,將其產生的連帶影響,響應式地作用於 DOM,例如:

<p v-if="seen">現在你看到我了</p>

這裡,v-if 指令將根據表示式 seen 的值的真假來插入/移除 <p> 元素

1、引數

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

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

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

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

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

在這裡引數是監聽的事件名

2、動態引數(2.6.0 新增)

從 2.6.0 開始,可以用方括號括起來的 JavaScript 表示式作為一個指令的引數:

<a v-bind:[attributeName]="url"> ... </a>

這裡的 attributeName 會被作為一個 JavaScript 表示式進行動態求值,求得的值將會作為最終的引數來使用

例如,如果你的 Vue 例項有一個 data property attributeName,其值為 "href",那麼這個繫結將等價於 v-bind:href

同樣地,你可以使用動態引數為一個動態的事件名繫結處理函式

<a v-on:[eventName]="doSomething"> ... </a>

在這個示例中,當 eventName 的值為 "focus" 時,v-on:[eventName] 將等價於 v-on:focus

(1)對動態引數的值的約束

動態引數預期會求出一個字串,異常情況下值為 null

這個特殊的 null 值可以被顯性地用於移除繫結,任何其它非字串型別的值都將會觸發一個警告

(2)對動態引數表示式的約束

  • 某些字元,如空格和引號,放在 HTML attribute 名裡是無效的。例如:
<!-- 這會觸發一個編譯警告 -->
<a v-bind:['foo' + bar]="value"> ... </a>

變通的辦法是使用沒有空格或引號的表示式,或用計算屬性替代這種複雜表示式

  • 避免使用大寫字元來命名鍵名,因為瀏覽器會把 attribute 名全部強制轉為小寫:
<!--
在 DOM 中使用模板時這段程式碼會被轉換為 `v-bind:[someattr]`。
除非在例項中有一個名為“someattr”的 property,否則程式碼不會工作。
-->
<a v-bind:[someAttr]="value"> ... </a>

3、修飾符

修飾符是以半形句號 . 指明的特殊字尾,用於指出一個指令應該以特殊方式繫結

例如,.prevent 修飾符告訴 v-on 指令對於觸發的事件呼叫 event.preventDefault()

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

 

三、縮寫

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

1、v-bind 縮寫

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

<!-- 縮寫 -->
<a :href="url">...</a>

<!-- 動態引數的縮寫 (2.6.0+) -->
<a :[key]="url"> ... </a>

2、v-on 縮寫

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

<!-- 縮寫 -->
<a @click="doSomething">...</a>

<!-- 動態引數的縮寫 (2.6.0+) -->
<a @[event]="doSomething"> ... </a>