Vue學習筆記 計算屬性

2021-10-09 23:01:33 字數 1901 閱讀 6753

模板內的表示式非常便利,但是更適用於簡單運算的。放入太多的邏輯會讓模板過重且難以維護。例如:

}<

/div>

上面的表示式中包含了3個操作,看起來也不清晰,所以這種情況下,應該使用vue的計算屬性。

乙個計算屬性裡可以完成各種複雜的邏輯,包括運算、函式呼叫等,只要最終返回乙個結果就可以。

上面的例子用計算屬性可以寫成:

"example"

>

}<

/p>

//這裡把複雜處理放在計算屬性裡

computed:

}<

/p>

<

/div>

var vm =

newvue(,

computed:}}

);

計算屬性還可以依賴多個vue 例項的資料,只要其中任乙個資料變化,計算屬性就會重新執行,檢視也會更新。例:

>

"add()"

>button<

/button>

}<

/div>

<

/div>

<

/body>

new

vue(

, mun2:},

computed:},

methods:}}

);補充:

1. 計算屬性可以依賴其他計算屬性;

2. 計算屬性不僅可以依賴當前vue 例項的資料,還可以依賴其他例項的資料例:

>

<

/div>

>

}<

/div>

new

vue(})

;new

vue(}}

);計算屬性包含乙個getter屬性 和乙個setter屬性 ,一般我們都是使用計算屬性的預設用法, 利用了getter 來讀取。

當需要手動修改計算屬性的值就像修改乙個普通資料那樣時,就需要使用setter屬性,觸發setter 函式,執行一些自定義的操作,例如:

var vm =

newvue(,

computed:

,// setter

set:

function

(newvalue)}}

});//現在再執行 vm.newname = 'byu doe' 時,setter 會被呼叫,vm.firstname 和 vm.lastname 也會相應地被更新。

補充:很多時候我們只會用預設的getter 方法來讀取乙個計算屬性,很少用到setter,所以在宣告乙個計算屬性時,可以直接使用預設的寫法,不必將getter 和setter 都宣告。

在上面的例子裡,我們通過在表示式中呼叫方法也可以達到同樣的效果,兩種方式最終的結果是完全相同的。

}<

/div>

// 在元件中

methods:

}

補充:computed與methods的使用區別只有乙個,methods使用reversetitle()取值,computed使用reversetitle取值。

更重要的不同是,計算屬性是基於它的依賴進行快取的。也就是說計算屬性只有在它的相關依賴發生改變時才會重新求值。

而在methods中,不管它依賴的值有沒有發生變化,她都會再次計算執行

2020 09 18 vue學習筆記 計算屬性

模板內的表示式非常便利,但是設計它們的初衷是用於簡單運算的。在模板中放入太多的邏輯會讓模板過重且難以維護。例如 example div 在這個地方,模板不再是簡單的宣告式邏輯。你必須看一段時間才能意識到,這裡是想要顯示變數 message 的翻轉字串。當你想要在模板中多包含此處的翻轉字串時,就會更加...

Vue學習筆記(3)關於Vue的計算屬性

通過之前的學習,我們學習了模板之中的文字插值,這可以很好的實現資料的展示與繫結,但是這樣的展示是有點缺陷的,比如當你想把資料做一定的複雜處理過後才展示的時候,當然你也可以繼續地使用模板,可是這會顯得特別難以維護。vue當然也是給出了解決方案,這就是計算屬性,先給出 在此我們利用了計算屬性來對mess...

Vue 學習筆記 css屬性計算的問題

今天在使用vue時遇到乙個問題 在切換css內聯屬性時某些特殊屬性的計算會有問題,無法得到預期的結果。例子 上面的頁面中展示了這個問題的表現,當原始樣式是border bottom color 這樣的 css,且切換的css是他對應的簡寫,如broder 時,取消這個切換操作無法恢復到原始的css樣...