2017/09/13 VUE模板語法

一. 模板語法

*** ?Vue.js 使用了基于 HTML 的模板語法,允許開發(fā)者聲明式地將 DOM 綁定至底層 Vue 實例的數(shù)據(jù)。所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循規(guī)范的瀏覽器和 HTML 解析器解析。

在底層的實現(xiàn)上,Vue 將模板編譯成虛擬 DOM 渲染函數(shù)。結(jié)合響應(yīng)系統(tǒng),在應(yīng)用狀態(tài)改變時,Vue 能夠智能地計算出重新渲染組件的最小代價并應(yīng)用到 DOM 操作上。

如果你熟悉虛擬 DOM 并且偏愛 JavaScript 的原始力量,你也可以不用模板,直接寫渲染 (render) 函數(shù),使用可選的 JSX 語法。


二.插值方法

1. 文本插值

使用“Mustache”語法 (雙大括號) 的文本插值

Message: {{ msg }}

無論何時,綁定的數(shù)據(jù)對象上msg屬性發(fā)生了改變,插值處的內(nèi)容都會更新。


2. 通過v-once指令,只進(jìn)行一次插值,當(dāng)數(shù)據(jù)值改變值,插值出的內(nèi)容不會改變,但這會影響到該節(jié)點上的所有數(shù)據(jù)綁定

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



3. 原始HTML

雙大括號輸出的是撲通文本,不能輸出HTML標(biāo)簽,為了輸出原始HTML標(biāo)簽,使用v-html指令

<div v-html="rawHtml"></div>

div標(biāo)簽將會替換為屬性值rawHtml,直接作為HTML, 他會忽略屬性值里的數(shù)據(jù)綁定

重點 : ?你的站點上動態(tài)渲染的任意 HTML 可能會非常危險,因為它很容易導(dǎo)致XSS 攻擊。請只對可信內(nèi)容使用 HTML 插值,絕不要對用戶提供的內(nèi)容插值。


4. Mustache語法不能作用在html標(biāo)簽的特性上,可以使用v-bind指令

<button v-bind;disabled="isButtondisabled">BUTTON</button>


5. 使用JavaScript表達(dá)式

Vue.js 都提供了完全的 JavaScript 表達(dá)式支持

{{ number + 1 }}

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

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

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

重點: 這些表達(dá)式會在所屬 Vue 實例的數(shù)據(jù)作用域下作為 JavaScript 被解析有個限制就是,每個綁定都只能包含單個表達(dá)式,所以下面的例子都不會生效。


{{ var a = 1 }} ? ? ?// 語句,不是表達(dá)式


{{ if (ok) { return message } }} ? ? ?// 流控制,使用三元運算


三. 指令

指令 (Directives) 是帶有v-前綴的特殊屬性。指令屬性的值預(yù)期是單個 JavaScript 表達(dá)式(v-for是例外情況,稍后我們再討論)。指令的職責(zé)是,當(dāng)表達(dá)式的值改變時,將其產(chǎn)生的連帶影響,響應(yīng)式地作用于 DOM。回顧我們在介紹中看到的例子:

<p v-if="seen">現(xiàn)在看到我啦</p>

將根據(jù)seen傳入的值判斷p標(biāo)簽的插入和刪除

1. 參數(shù)

一些指令能夠接收一個參數(shù)(v-bind / ?v-on)

指令冒號后面的就是參數(shù),v-bind后面的參數(shù)可以用于響應(yīng)式的更行HTML標(biāo)簽的屬性

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

將href 屬性與url數(shù)據(jù)進(jìn)行動態(tài)綁定



v-on 用于綁定DOM監(jiān)聽事件

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


2. 修飾符

修飾符 (Modifiers) 是以半角句號.指明的特殊后綴,用于指出一個指令應(yīng)該以特殊方式綁定。例如,.prevent修飾符告訴v-on指令對于觸發(fā)的事件調(diào)用

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容