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