其實這部分內容我也是參考的官網:http://cn.vuejs.org/v2/guide/syntax.html,但是我還是想把自己不懂的知識記錄一下,加深印象,也可以幫助自己以后查閱。所謂勤能補拙。
首先我們說一下模板,其實如果看過第一節vue入門----組件,我們會知道更好更科學的辦法是通過創建組件的方式,這種方式允許我們任意進行組件的嵌套。而通過模板的方式的話,個人覺得效果並沒有組件好。行,開始切入正題,現在我們首先通過一下幾點來進行學習(其實是按照官網的順序記錄自己不懂的知識點)。
1. 插值: 所謂插值,其實就是數據的綁定,我們可以通過腳本語言來修改Vue作用域內的任意值。大致分為一下幾點內容:
A. 文本:其實這是最簡單的方法之一,我們可以簡單的通過Mustache來進行相關的設置。語法如下:{{example}}
B. 單次文本綁定: 同上,只是值不會隨js的改變而改變,語法如下:{{*example}}
C. html: 如果我們想通過插值的方式來將html進行元素替換的話,我們可以使用v-html指令來進行關聯,注意與vue1.0中的差別,在1.0中直接通過{{{......}}}即可完成綁定。但是在這我更推薦使用自定義組件的方式進行擴展,因為采用v-html指令的方式來復合局部模板,vue並不能識別我們在其中嵌套的模板。
D. js表達式:我們還可以在綁定中進行js表達式的編寫,這樣我們可以進行一些簡單的判斷,但是有一個限制: 每個綁定只能包含一個表達式。(不包括語句和流程控制等)
2. 計算屬性: 計算屬性是我們學習過程中的另一個知識點,它的函數是指:如果我們想要通過作用域范圍內的值進行計算得出另一個值,如果我們直接在插值中進行計算會顯得特別凌亂和難以維護。這時候我們就需要使用計算屬性,語法為:computer:{},可使用與vue的實例過程中,或者是組件的創建過程中(上一節我們說過,vue實例過程中的參數出el和data外,其余的都可以使用到組件創建過程中)。例如:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="https://unpkg.com/vue/dist/vue.js"></script> <title>Title</title> </head> <body> <div id="app"> <h1>{{test}}</h1> <h2>{{tset}}</h2> </div> <script> var vm = new Vue({ el: '#app', data: { test: 'temp' }, computed: { tset: function () { return this.test+'pmet' } } }) </script> </body> </html>
這里test是經過簡單綁定的模板,而tset則是經過test計算出來的屬性,我們通過computed:{}語法進行計算。特別注意這里this的用法,this調用的是vm作用域內的全體成員。
A. 這里我們需要特別注意一點,計算屬性只有在其依賴的值發生改變的時候才會出發進行再次計算,相當於一個緩存的作用。這樣設計的好處是如果我們維護了一個很大的變量時,並且另一個計算屬性依賴於這個變量,此時我們不可能每一次都去讀取這個變量,更科學的辦法是當被依賴屬性發生改變時出發事件。這種科學的做法類似cache的設計理念。
B. 實時更新,我們在進行設計的時候如果希望每一次更新都去讀取被依賴屬性,那么我們可以使用methods屬性。
C. 並且在進行computed的時候我們還可以對計算屬性設置set/get方法。