computed
作用:計算屬性,根據(jù)現(xiàn)有的值生成一個新的屬性值副渴,并用return返回新的屬性值奈附。
eg: 計算總價
(1)計算屬性將被混入到 Vue 實例中, 即this 上下文自動地綁定為 Vue 實例煮剧,但是計算屬性使用了箭頭函數(shù)斥滤,則 this 不會指向這個組件的實例。
(2)計算后的屬性不需要在data中定義勉盅。
(3)computed屬性有依賴緩存佑颇,若computed綁定的方法中任意變量改變,該方法才會被重新調用草娜,上例中挑胸,頁面多次調用totalPrice,但在控制臺中只顯示一次 'computed屬性實現(xiàn)計算總價'宰闰。
(4)computed不接受傳參茬贵,數(shù)據(jù)都是從data中獲取。
場景:需要生成一個新的屬性時或者復雜的邏輯計算移袍。
filters
作用:過濾器解藻,相當于把數(shù)據(jù)進行格式化。比如時間戳格式
eg: 在價格的前面加上人民幣¥
watch
作用: 監(jiān)聽屬性葡盗,監(jiān)聽data屬性中的數(shù)據(jù)螟左,當數(shù)據(jù)發(fā)生變化時,自動執(zhí)行函數(shù)觅够。
eg: 城市聯(lián)動
(1) watch回調函數(shù)不可以使用箭頭函數(shù)胶背,因為箭頭函數(shù)綁定了父級作用域的上下文,所以this 不是指向 Vue 實例喘先。
(2)監(jiān)聽的屬性需要在data中定義奄妨。
場景:數(shù)據(jù)改變時,執(zhí)行異步操作或開銷較大的操作苹祟,發(fā)請求或者監(jiān)聽路由進行相應操作砸抛。
methods
methods中存放的是內部方法、事件的回調树枫。
(1)methods 將被混入到 Vue 實例中直焙。可以直接通過 VM 實例訪問這些方法砂轻,或者在指令表達式中使用奔誓。注意在methods中不要使用箭頭函數(shù),因為箭頭函數(shù)綁定了父級作用域的上下文。
(2)只要發(fā)生重新渲染厨喂,methods調用總會執(zhí)行該函數(shù)
(3)methods 是函數(shù)調用和措,computed,filters是屬性調用。
場景:每次確實需要重新加載蜕煌,不需要緩存時用methods派阱。