vue筆記---模板語法-插值
阿新 • • 發佈:2019-01-24
1.文字
資料繫結最常見的形式就是使用‘Mustache’語法(雙打括號)的文字插值:
<span>message:{{msg}}</span>
使用v-once指令,也能執行一次性的插值,當主句改變時,插值處的內容不會更新。
但請留心這回影響到該節點上所有的資料繫結:
<span v-once>this will nver change:{{message}}</span>
2.純html
雙打括號會將資料解釋為純文字,而非html。為了輸出html可以使用v-html指令:
<div v-html="rawhtml"></div>
被插入的內容被當做HTML---資料繫結會被忽略。注意,你不能使用v-html來
複合區域性模版,因為vue不是基於字串的模版引擎。元件更適合單人UI重用與複合的基本單元。
站點上動態渲染的任意html可能會非常危險,因為它會很容易導致XSS攻擊。
請只對可信內容使用html插值,絕不要對使用者提供的內容插值。
3.屬性
Mustache不能在html屬性中使用,應使用v-bind指令;
<div v-bind:id="dynamicId"></div>
這對布林值的屬性也有效--如果條件被求值為flase的話該屬性被移除
<button v-bind:disabled="someDynamicCondition">Button</button>
4.使用JavaScript表示式
迄今為止,在我們的模版中我們一直都值繫結簡單的屬性鍵值。但實際上,對於
所有的資料繫結,Vue.js都提供了完全的Javascript表示式支援
{{nunber+1}}
{{ok?'YES':'NO'}}
{{message.split('').reverse().join('')}}
<div v-bind:is="'list-'+id"></div>
這些表示式會在所屬vue例項的資料作用域下作為哦JavaScript被解析。
每個限制就是,每個繫結都只能包含單個表示式,所以下面不會生效
//這句是語句不是表示式
{{var a = 1}}
//流控制也不會生效,請使用三元表示式
{{if(ok){return message}}}
模板表示式都被放在沙盒中,只能訪問全域性變數的一個白名單,如Math和Date。
不應該在模板表示式中試圖訪問使用者自定義的全域性變數