前端學習 VUE計算屬性和偵聽器

2021-10-02 14:50:28 字數 3507 閱讀 6992

二 偵聽器

#疑問模板內可以使用表示式進行計算,比如:

"example"

>

}div

>

所以對於計算邏輯,可以使用計算可以看到,在data中,並沒有宣告reversedmessage,使用時以函式}方式進行呼叫,但是在卻可以用其進行文字插值。

計算屬:我們在computed計算屬性中宣告的資料,每次呼叫時,會檢視他的響應式依賴

"example"

>

>

original message: "}"p

>

>

computed reversed message: "}"p

>

div>

var vm =

newvue(,

computed:}}

)

我們也可以通過呼叫方法來達到同樣的效果,如下:

>

reversed message: "}"p

>

// 在元件中

methods:

}

不同的是計算屬性是基於它們的響應式依賴進行快取的。只在相關響應式依賴發生改變時它們才會重新求值。這就意味著只要message還沒有發生改變,多次訪問reversedmessage計算屬性會立即返回之前的計算結果,而不必再次執行函式。

q:下面的now值會更新嗎?

computed:

}

>

>

msg: }p

>

>

reversemsg: }p

>

>

computednow: }p

>

>

functionnow: }p

>

@click

="changemsg"

>

click_change_msgbutton

>

div>

var vm =

newvue(,

computed:

, computednow:

function()

},methods:

, changemsg:

function()

}});

我們在之前的文章中學習過vue例項屬性與方法

vm.$data === var_data;

// => true

vm.$el === document.

getelementbyid

('example'

)// => true

vm.$watch

('a'

,function

(newvalue, oldvalue)

)

vue例項中的eldata屬性都已經展示過,watch則是偵聽屬性。如下例中,firstnamelastname將被監聽:

姓: }p

>

>

名: }p

>

>

姓名: }p

>

@click

="changesecondname"

>

clickbutton

>

div>

var vm =

newvue(,

computed:

, methods:},

watch:}}

);

但是在這種情況下,假如firstname也需要改變,則就需要兩個watch裡的函式來監聽。若使用計算屬性,就可以解決這個問題:

因為宣告在computed中的fullname,呼叫時會判斷他的響應式依賴,從而實現響應式更新

var vm =

newvue(,

computed:},

methods:}}

);

計算屬性預設只有gettersetter需要顯示宣告。setter可以用來更新他的響應式依賴,如下:

姓: }p

>

>

名: }p

>

>

姓名: }p

>

@click

="changesecondname"

>

changefullname = wu1 秉yubutton

>

div>

var vm =

newvue(,

computed:

,// setter

set:

function

(newvalue)}}

, methods:}}

);

偵聽器可以設定中間狀態、執行非同步操作

引入js檔案

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 在上述中字串的反轉邏輯放在模板中,這樣是不利於維護的,...

計算屬性和偵聽器

1 計算屬性快取 vs 方法 將乙個函式定義為計算屬性和方法得到的結果是相同的。但不同的是計算屬性是基於它們的依賴進行快取的,只是在相關依賴發生改變時才會重新求值。方法 methods 計算屬性 computed 2 計算屬性 vs 偵聽屬性 偵聽屬性 觀察和響應vue例項上的資料變動 watch ...