模板語法(DOM與Vue數據綁定)

Vue.js使用了基于HTML的模板語法,允許開發者聲明式的將DOM綁定至底層Vue實例的數據。

插值

  1. 文本:{{ }}
    數據綁定最常見的形式就是使用Mustache語法(雙大括號)的文本插值,解釋為普通文本
<span>Message:{{ msg }}</span>

Mustache標簽將會被替代為msg屬性的值,無論何時,綁定的數據對象msg屬性發生了變化,插值處的內容都會更新(使用v-once指令,可以執行一次性的插值,當msg的內容發生改變時插值處的內容不會發生改變,如下:)。

//這個在msg的值發生變化時將不會改變
<span v-once>Message:{{ msg }}</span>
  1. 原始HTML:v-html
    雙大括號會將數據解釋為普通文本,而非 HTML 代碼。為了輸出 HTML,需要使用v-html指令:
<div v-html="rawHtml"></div>

這個 div 的內容將會被替換成為屬性值 rawHtml,直接作為 HTML——會忽略解析屬性值中的數據綁定。

  1. 特性:v-bind
    Mustache 語法不能作用在HTML特性(即屬性)上,應該使用v-bind指令:
<div v-bind:id="dynamicId"></div>
<a v-bind:href="url"></a>
![](imageSrc)

new Vue({
  el:'.box',
  data:{
    url:'http:...'
  }
})
  1. 使用javaScript表達式
    Vue.js不僅可以綁定簡單的屬性鍵值,而且對于所有的數據綁定,都提供了完全的javaScript表達式支持,如下:
{{ number+1 }}
{{ ok ? 'Yes' : 'No' }}
{{ message.split('')reverse().join('') }}
<div v-bind:id=" 'list-'+id "></div>

但每個綁定都只能包含單個表達式,下面的不會生效:

{{ var a=1 }}  //這是語句,不是表達式
//控制流也不會生效,可使用三元表達式
{{ if(ok) {return message }  }}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內容,還有我對于 Vue 1.0 印象不深的內容。關于...
    云之外閱讀 5,079評論 0 29
  • Vue 實例 屬性和方法 每個 Vue 實例都會代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,241評論 0 6
  • 1.安裝 可以簡單地在頁面引入Vue.js作為獨立版本,Vue即被注冊為全局變量,可以在頁面使用了。 如果希望搭建...
    Awey閱讀 11,097評論 4 129
  • 在上一篇文章<<Vue深入解析-Mustache>>中,我們解釋了vue在插值和綁定表達式時使用的模板語言Must...
    li4065閱讀 6,685評論 4 4
  • 有時候的我真的有些玻璃心,明明別人的話沒有特別意思我可能會將其解讀成他的優越感,他對我的輕視感等等。最后冷靜下來,...
    goddessna閱讀 681評論 0 0