vue2.0-vue實例的幾個常用選項


我們知道定義一個vue實例,最基本的參數有el(指定掛載的DOM元素),data(實例的數據)。

但是,還有很多參數等着我們去認識。今天,我們就來認識幾個重要的參數。

1.計算屬性(computed)

計算屬性很強大,因為它會隨着其他屬性動態的去更新。

例子1:簡單的加法:

index.html中再進行渲染

即可得到結果:

 

除了簡單的加減法,computed還可以有很多作用:比如官方文檔里的字符倒敘。

例子2:

還可以刪除字符屬性等等。

例子3:

 

 這里除了用到了computed屬性,還用到了雙向綁定,利用v-model,后面將v-model時再詳細講v-model的雙向綁定。

 

 

2.方法屬性(methods)

在方法屬性中,我們定義一些方法,讓組件來使用。

比如:定義一個數據a。使用戶每點擊按鈕的時候,a的值就要加1.我們就可以利用methods來實現。

結果如下圖:

 

 

3.watch觀察方法:

watch選項是Vue提供的用於檢測指定的數據發生改變的api。

上面點擊按鈕a的值加1的例子,不就是數據發生變化了嗎?我們就用watch選項來監聽數字a是否發生了變化,如果了監聽到了變化,我們就在控制台輸入以下a的最新值。

 

結果:

 

 

4.filter過濾器

注意:在渲染時,通過管道符 | 把函數toInt放在變量后面即可,num會作為參數value傳入toInt(value)方法里。

 

其實,這幾個方法是有很多相似的。

#計算屬性緩存 vs 方法

我們可以將同一函數定義為一個方法而不是一個計算屬性。兩種方式的最終結果確實是完全相同的。然而,不同的是計算屬性是基於它們的依賴進行緩存的。計算屬性只有在它的相關依賴發生改變時才會重新求值。

相比之下,每當觸發重新渲染時,調用方法將總會再次執行函數。

我們為什么需要緩存?假設我們有一個性能開銷比較大的計算屬性 A,它需要遍歷一個巨大的數組並做大量的計算。然后我們可能有其他的計算屬性依賴於 A 。如果沒有緩存,我們將不可避免的多次執行 A 的 getter!如果你不希望有緩存,請用方法來替代。

計算屬性 vs 偵聽屬性

Vue 提供了一種更通用的方式來觀察和響應 Vue 實例上的數據變動:偵聽屬性。當你有一些數據需要隨着其它數據變動而變動時,你很容易濫用 watch——特別是如果你之前使用過 AngularJS。然而,通常更好的做法是使用計算屬性而不是命令式的 watch 回調。細想一下這個例子:

 

上面代碼是命令式且重復的。將它與計算屬性的版本進行比較:

 

好得多了,不是嗎? 

 

我認為一些簡單的監聽事件,可以用watch,復雜一點的還是用計算方法把~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM