vue中的計算屬性和偵聽器

2021-10-04 10:34:06 字數 1114 閱讀 9862

模板中放入太多的邏輯的時候難以維護。對於複雜的邏輯都可以使用計算屬性。

計算屬性中有乙個快取,即使重新渲染,只要資料不發生變化,就不會觸發對應屬性的計算邏輯。

watch是觀察某乙個屬性的變化,重新計算屬性值。computed是通過所依賴的屬性的變化重新計算屬性值。

大部分情況下watch和computed幾乎沒有差別。但如果要在資料變化的同時進行非同步操作或者是比較大的開銷,那麼watch為最佳選擇。

1、 計算屬性:

計算屬性相當於生命乙個屬性的變數,該變數由data中的變數計算(邏輯)出來的結果。如果data的對應的變數發生改變的時候,相應的計算屬性的方法將會執行。

注釋: methods裡面的方法也可以執行計算屬性的邏輯結果是相同的,區別是計算屬性是響應式依賴進行快取的,只有在相關響應式依賴發生改變的時候,才會重新計算,呼叫對應計算屬性方法。如果響應式依賴沒有發生變化的時候,就不會呼叫計算方法,對應計算屬性的值會從之前的快取中去取值。

>

}<

/div>

var vm =

newvue

(,

computed:}}

)<

/script>

計算屬性深入:

預設的計算屬性只有getter方法,會返回計算出來的值。也有setter方法提供。

computed:

,// setter

set:

function

(newvalue)

}}

如果手動的去改動fullname的時候,對應的firstname和lastname的值也會對應修改。

2、 偵聽器:

>

}<

/div>

var vm =

newvue

(,

watch:

, price:

function

(val)}}

)<

/script>

相比之下計算屬性會比偵聽屬性好一些,偵聽屬性命令會重複,**冗餘。

但是在資料發生非同步變化的時候或者開銷較大的時候,常用於偵聽器。

Vue計算屬性和偵聽器

模板內的表示式非常便利,但是在模板中放入太多的邏輯會讓模板過重切難以維護。對於任何複雜邏輯都應該使用計算屬性。var vm new vue computed 這裡宣告乙個計算屬性reversemsg。我們提供的函式將作用屬性vm.reversemsg的getter函式。我們可以在表示式中呼叫方法來達...

vue之計算屬性和偵聽器

一 使用計算屬性 模板內的表示式是非常便利的,但適用於簡單運算。在模板中放入太多的邏輯會讓模板過重且難以維護。script src vue.js script div id p p div script varvm new vue script 在上述中字串的反轉邏輯放在模板中,這樣是不利於維護的,...

vue中偵聽器和計算屬性的使用

在vue中有一些操作總是在某乙個值得改變後進行相應的操作,這就需要進行動態的追蹤該值得改變,並且進行相應的操作,這種情況下就需要使用偵聽器watch。普通用法 如果需要追蹤的值知識簡單的基礎型別的改變,只需要使用watch的普通用法即可進行動態的監聽屬性的變化。watch 深度偵聽 當對於物件或者陣...