摘要:模板語(yǔ)法上一篇入門,屬性和指令下一篇的與綁定插值文本最常用的文本插值方法是使用語(yǔ)法標(biāo)簽將會(huì)被替代為對(duì)應(yīng)數(shù)據(jù)對(duì)象上屬性的值。計(jì)算屬性只有在它的相關(guān)依賴發(fā)生改變時(shí)才會(huì)重新求值。
模板語(yǔ)法
插值 文本上一篇:Vue 入門,Vue屬性和指令:https://segmentfault.com/a/11...
下一篇:Vue 的 Class 與 Style 綁定:https://segmentfault.com/a/11...
最常用的文本插值方法是使用"Mustache"語(yǔ)法
Message:{{msg}}
Mustache 標(biāo)簽將會(huì)被替代為對(duì)應(yīng)數(shù)據(jù)對(duì)象上 msg 屬性的值。無(wú)論何時(shí),綁定的數(shù)據(jù)對(duì)象上 msg 屬性發(fā)生了改變,插值處的內(nèi)容都會(huì)更新。
通過(guò)使用 v-once 指令,可以執(zhí)行一次性的插值,當(dāng)數(shù)據(jù)改變時(shí),插值處的內(nèi)容便不會(huì)再更新
純HTMl這個(gè)數(shù)據(jù)將不會(huì)改變{{msg}}
{{}}會(huì)將數(shù)據(jù)解釋為純文本,為了能夠輸出HTML,可以使用 v-html 指令
{{msg}}
屬性 rewHtml 會(huì)將這個(gè) div 內(nèi)的內(nèi)容替換,也就是說(shuō)原來(lái)綁定的 msg 屬性被忽略,rewHtml 將作為 HTML 被直接添加
hello world特性
Mustache 語(yǔ)法不能用在設(shè)置 HTML 特性上,這時(shí)候就可以使用 v-bind 指令:
哈哈哈哈
布爾類特性可以這樣設(shè)置,值為 false ,則該特性就會(huì)被刪除
如上,當(dāng)我們把 tit 的值改為 false 時(shí),則 button 中的 disabled 會(huì)被刪除,按鈕也就可以點(diǎn)擊了
javascript 表達(dá)式Vue 也提供了對(duì)js表達(dá)式的支持
{{ message.split("").reverse().join("")}}
gfedcba
這些表達(dá)式會(huì)在所屬 Vue 實(shí)例的數(shù)據(jù)作用域下作為 JavaScript 被解析。有個(gè)限制就是,每個(gè)綁定都只能包含單個(gè)表達(dá)式,所以下面的例子都不會(huì)生效。
{{ var a = 1 }} {{ if (ok) { return message } }}指令
指令(Directives)是帶有 v- 前綴的特殊屬性。指令屬性的值預(yù)期是單個(gè) JavaScript 表達(dá)式(v-for 是例外情況,稍后我們?cè)儆懻摚?。指令的職?zé)是,當(dāng)表達(dá)式的值改變時(shí),將其產(chǎn)生的連帶影響,響應(yīng)式地作用于 DOM。我上一篇文章中也提到過(guò)了
顯示
這里, v-if 指令將根據(jù)表達(dá)式 seen 的值的真假來(lái)插入/移除
元素。
參數(shù)一些指令能夠接收一個(gè)“參數(shù)”,在指令名稱之后以冒號(hào)表示。例如,v-bind 指令可以用于響應(yīng)式地更新 HTML 屬性:
在這里 href 是參數(shù),告知 v-bind 指令將該元素的 href 屬性與表達(dá)式 url 的值綁定。
另一個(gè)例子是 v-on 指令,它用于監(jiān)聽(tīng) DOM 事件,也在我的上一篇文章中也提到了
修飾符修飾符(Modifiers)是以半角句號(hào) . 指明的特殊后綴,用于指出一個(gè)指令應(yīng)該以特殊方式綁定。例如,.prevent 修飾符告訴 v-on 指令對(duì)于觸發(fā)的事件調(diào)用 event.preventDefault():
過(guò)濾器過(guò)濾器可以被用作一些常見(jiàn)的文本格式化,規(guī)定好過(guò)濾器的方法,便可以在模板里調(diào)用了。過(guò)濾器可以用在兩個(gè)地方:mustache 插值和 v-bind 表達(dá)式。過(guò)濾器應(yīng)該被添加在 JavaScript 表達(dá)式的尾部,由“管道”符指示:
{{ message | capitalize }}
{{ message|reverse}}
過(guò)濾器也可以串聯(lián):
{{message|reverse|split}}
[ "g", "f", "e", "d", "c", "b", "a" ]
在這個(gè)例子中,reverse 被定義為接收單個(gè)參數(shù)的過(guò)濾器函數(shù),表達(dá)式 message 的值將作為參數(shù)傳入到函數(shù)中,然后繼續(xù)調(diào)用同樣被定義為接收單個(gè)參數(shù)的過(guò)濾器函數(shù) split,將 reverse 的結(jié)果傳遞到 split 中。
過(guò)濾器是 JavaScript 函數(shù),因此可以接收參數(shù):
{{ message | filterA("arg1", arg2) }}
這里,filterA 被定義為接收三個(gè)參數(shù)的過(guò)濾器函數(shù)。其中 message 的值作為第一個(gè)參數(shù),普通字符串 "arg1" 作為第二個(gè)參數(shù),表達(dá)式 arg2 取值后的值作為第三個(gè)參數(shù)。
縮寫Vue.js 為 v-bind 和 v-on 這兩個(gè)最常用的指令,提供了特定簡(jiǎn)寫:
v-bind 縮寫v-on 縮寫
計(jì)算屬性 getter函數(shù)
正向{{message}}
反向{{reMessage}}
結(jié)果如下
正向abcdefg 反向gfedcba
這里我們聲明了一個(gè)計(jì)算屬性 reMessage。我們提供的函數(shù)將用作屬性 vm.reMessage 的 getter 函數(shù):
console.log(exp.reMessage) // --> "gfedcba" exp.message="Hello" console.log(exp.reMessage) // --> eybdooG
當(dāng)我們?cè)诳刂婆_(tái)修改exp.message的值時(shí),exp.reMessage 的值也會(huì)更新
計(jì)算屬性 vs method 方法其實(shí)針對(duì)上面的例子,使用method方法也可以達(dá)到
反向{{reMessage}}
事實(shí)上,在計(jì)算結(jié)果上,method方法和compute方法是一致的,然而,不同的是計(jì)算屬性是基于它們的依賴進(jìn)行緩存的。計(jì)算屬性只有在它的相關(guān)依賴發(fā)生改變時(shí)才會(huì)重新求值。這就意味著只要 message 還沒(méi)有發(fā)生改變,多次訪問(wèn) reMessage 計(jì)算屬性會(huì)立即返回之前的計(jì)算結(jié)果,而不必再次執(zhí)行函數(shù)。
而使用method方法時(shí),每次重新渲染時(shí),都要再次執(zhí)行函數(shù)
計(jì)算屬性 vs Watched 屬性{{fullName}}
在控制臺(tái)修改 exp.fullName的值,那么 firstName 和 lastName 的值也會(huì)相應(yīng)的更新
Vue 方法事件
methods:{ }
過(guò)濾器
filters:{ }
計(jì)算
conputed:{ }
觀察
watch:{ }
鉤子函數(shù)
created:function(){ //創(chuàng)建 }, mounted:function(){ //掛載 }, updated:function(){ //更新 }, destoryed:function(){ //銷毀 )To be continue......
上一篇:Vue 入門,Vue屬性和指令:https://segmentfault.com/a/11...
下一篇:Vue 的 Class 與 Style 綁定:https://segmentfault.com/a/11...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/85101.html
摘要:然而,不同的是計(jì)算屬性是基于它們的依賴進(jìn)行緩存的。計(jì)算屬性只有在它的相關(guān)依賴發(fā)生改變時(shí)才會(huì)重新求值。這就意味著只要還沒(méi)有發(fā)生改變,多次訪問(wèn)計(jì)算屬性會(huì)立即返回之前的計(jì)算結(jié)果,而不必再次執(zhí)行函數(shù)。這是計(jì)算屬性無(wú)法做到的。 Vue實(shí)例 構(gòu)造器 每個(gè) Vue.js 應(yīng)用都是通過(guò)構(gòu)造函數(shù) Vue 創(chuàng)建一個(gè) Vue 的根實(shí)例 啟動(dòng)的: var vm=new Vue({ //...
摘要:模板語(yǔ)法插值文本數(shù)據(jù)綁定最常見(jiàn)的形式就是使用語(yǔ)法雙大括號(hào)的文本插值標(biāo)簽將會(huì)被替代為對(duì)應(yīng)數(shù)據(jù)對(duì)象上屬性的值。指令的職責(zé)是,當(dāng)表達(dá)式的值改變時(shí),將其產(chǎn)生的連帶影響,響應(yīng)式地作用于。通常更好的想法是使用屬性而不是命令式的回調(diào)。 模板語(yǔ)法 插值 文本 數(shù)據(jù)綁定最常見(jiàn)的形式就是使用 Mustache 語(yǔ)法(雙大括號(hào))的文本插值: Message: {{ msg }} Mustache 標(biāo)簽將會(huì)被...
摘要:效率不高,很多多余,稱之為臟檢查。通過(guò)索引設(shè)置數(shù)組元素并觸發(fā)視圖更新。解決閃爍問(wèn)題自定義指令自定義指令提供一種機(jī)制將數(shù)據(jù)的變化映射為行為。 Vue特性 Vue只是聚焦視圖層,是一個(gè)構(gòu)建數(shù)據(jù)驅(qū)動(dòng)的Web界面的庫(kù)。 Vue通過(guò)簡(jiǎn)單 API提供高效的數(shù)據(jù)綁定和靈活的組件系統(tǒng) 輕量 數(shù)據(jù)綁定 指令 插件化 架構(gòu)從傳統(tǒng)后臺(tái)MVC 向REST API + 前端MV*遷移DOM是數(shù)據(jù)的一種自然映...
摘要:本文是小羊根據(jù)文檔進(jìn)行解讀的第一篇文章,主要內(nèi)容涵蓋的基礎(chǔ)部分的知識(shí)的,文章順序基本按照官方文檔的順序,每個(gè)知識(shí)點(diǎn)現(xiàn)附上代碼,然后根據(jù)代碼給予個(gè)人的一些理解,最后還放上在線編輯的代碼以供練習(xí)和測(cè)試之用在最后,我參考上的一篇技博,對(duì)進(jìn)行初入的 本文是小羊根據(jù)Vue.js文檔進(jìn)行解讀的第一篇文章,主要內(nèi)容涵蓋Vue.js的基礎(chǔ)部分的知識(shí)的,文章順序基本按照官方文檔的順序,每個(gè)知識(shí)點(diǎn)現(xiàn)附上代...
摘要:本文是小羊根據(jù)文檔進(jìn)行解讀的第一篇文章,主要內(nèi)容涵蓋的基礎(chǔ)部分的知識(shí)的,文章順序基本按照官方文檔的順序,每個(gè)知識(shí)點(diǎn)現(xiàn)附上代碼,然后根據(jù)代碼給予個(gè)人的一些理解,最后還放上在線編輯的代碼以供練習(xí)和測(cè)試之用在最后,我參考上的一篇技博,對(duì)進(jìn)行初入的 本文是小羊根據(jù)Vue.js文檔進(jìn)行解讀的第一篇文章,主要內(nèi)容涵蓋Vue.js的基礎(chǔ)部分的知識(shí)的,文章順序基本按照官方文檔的順序,每個(gè)知識(shí)點(diǎn)現(xiàn)附上代...
閱讀 2551·2021-09-22 16:05
閱讀 3128·2021-09-10 11:24
閱讀 3728·2019-08-30 12:47
閱讀 3024·2019-08-29 15:42
閱讀 3453·2019-08-29 15:32
閱讀 2036·2019-08-26 11:48
閱讀 1146·2019-08-23 14:40
閱讀 962·2019-08-23 14:33