2017-08-29 61 views

回答

3

計算屬性就像數據屬性一樣。計算的字面含義是'使用給定值計算'。

正如含義表明計算的性質是它的相關值的計算結果(在vuejs data性能,props

例如:

data:{ 
    lowerCase: 'abcd' 
}, 
computed:{ 
    uppercase(){ 
     return this.lowerCase.toUpperCase(); 
    } 
} 
在上述例子

計算屬性uppercase是取決於數據屬性lowerCase。它將字母轉換(計算)爲大寫。 每當lowercase發生變化時,使用此計算屬性的任何模板綁定都會自動更新。

手錶屬性更一般,並且以更強大(更昂貴)的方式觀察數據屬性的變化。 您可以在監視器中執行復雜的功能,異步任務。 documentation中給出的例子是使用觀察器的一個很好的例子。

總結的區別:

  1. 不像看着屬性計算​​屬性應該返回一個值。

  2. 計算性能就像數據屬性,可以在模板使用{{ }}使用 但不能使用觀察者。觀察者應該執行邏輯來更新模板中使用的數據屬性。

1

計算性能基本上都是「虛擬」性質進行評估當他們第一次使用。它們將被自動緩存,直到組件中的更改需要重新評估該屬性。

手錶屬性只是一種檢測屬性更改的機制,允許您執行自定義邏輯。由於觀察者功能強大得多,您可以使用它們來執行與計算屬性相同的操作:基本上,您可以觀察所有相關屬性,只要值發生更改,就會重新計算屬性並將其存儲在Vue實例中數據。除非需要複雜的邏輯,否則計算屬性已經可以以更具說明性的方式做到這一點:您不需要明確監聽所有相關屬性,但依靠Vue自動檢測您的計算屬性依賴於哪些屬性。所以你只是聲明性地陳述如何計算計算的屬性,不需要擔心別的。計算出來的專有技術也已經有了一個很好的緩存機制,你必須自己去看守。請參閱the guide on computed properties and watchers。他們爲觀察者提供的一個示例是發生了服務調用,該服務調用將加載附加數據。

一般來說,其要點是:儘量使用一切的計算屬性。如果它不能用作計算屬性,請使用觀察器。

1

其難度比the doc

tldr更清楚地表達這一點;computed屬性是被動的。它們的輸出被緩存,並且如果它們的任何輸入改變,它們都會自動更新。變化流出到頁面上,無需擔心什麼時候。 watch是「必要的和重複的」。你可以用事件做所有事情,但如果可以的話,你應該儘量提高食物鏈。

相關問題