vue3 computed, method

我們在學習vue的時候最常用到的就是computed,跟method這兩種語法,那麼這兩種的差異在哪裏?又是什麼時候適用呢?

 

首先,這篇文章會以vue3的寫法為基礎,也就是composition API的寫法。對於一開始就接觸的我,覺得這樣的寫法反而滿親民(?)的。

目錄

computed()

computed()的特點

computed() 一定會返回數值,通常會用return的形式

基本寫法
const plusFn = computed(() =>{

//要執行的函數

})
computed的優點

如果響應式數據沒有更新就不會觸,可以緩存資料,省略不必要的計算,提升效能

computed裡面的get, set屬性

computed默認式read only(只能讀取參數),但在某些情況下透過get()與set()這兩個方法,可以寫入數值

get:取值,無法寫入數值,不可帶入參數

set:寫入值,可帶入參數

const plusFn = computed(() =>{
get() {
}

set(value) {
}
//要執行的函數

})

methods

我們可以把她想像成function的寫法,無論響應式數據有沒有變動,都會調用

const plusFn(element) {
//要執行的函數
}
methods的特點

使用methods不一定要返回數值,同時也不一定要給參數(可給可不給)

但只要觸發就一定會執行,不管內部的ref有沒有更新

在模板上的寫法

當我們採用computed跟methods時,要注意template上的寫法會有不一樣,在methods上要加上括號

computed
{{plusOne}}

methods
{{plusOne()}}

參考資料

https://cn.vuejs.org/api/reactivity-core.html#computed

 

 

Related post

J J
JAVASCRIPT

使用vue3 自動判定日期

情境:我的專案有活動紀錄,格式為json,本來的網頁非常的土法煉鋼,還沒到來的活動日期就在上方,過期的活動在下方。有一天我突然懶惰了(?)希望可以自動抓取今天日期判斷是否過期 使用框架:vue 3…

Comments