watch監控路由 computed計算屬性值區別和用法
阿新 • • 發佈:2018-12-06
watch,computed區別
- computed屬性的結果會被快取,除非依賴的響應式屬性變化才會重新計算。主要當作屬性來使用;
- methods方法表示一個具體的操作,主要書寫業務邏輯;
- watch一個物件,鍵是需要觀察的表示式,值是對應回撥函式。主要用來監聽某些特定資料的變化,從而進行某些具體的業務邏輯操作;可以看作是computed和methods的結合體;
語法格式
watch:
watch: {
'$route.path':function(newVal, oldVal){
//console.log(newVal+'---'+oldVal);
if (newVal==='/login') {
console.log('歡迎進入登入頁面')
}else if(newVal==='/register'){
console.log('歡迎進入註冊頁面')
}
}
},
computed:
在 computed 中,可以定義一些 屬性,這些屬性,叫做 【計算屬性】, 計算屬性的,本質,就是 一個方法,只不過,我們在使用 這些計算屬性的時候,是把 它們的 名稱,直接當作 屬性來使用的;並不會把 計算屬性,當作方法去呼叫;
注意1: 計算屬性,在引用的時候,一定不要加 () 去呼叫,直接把它 當作 普通 屬性去使用就好了;
注意2: 只要 計算屬性,這個 function 內部,所用到的 任何 data 中的資料傳送了變化,就會 立即重新計算 這個 計算屬性的值
注意3: 計算屬性的求值結果,會被快取起來,方便下次直接使用; 如果 計算屬性方法中,所以來的任何資料,都沒有發生過變化,則,不會重新對 計算屬性求值;
computed: {
'fullname': function () {
console.log('ok')
return this.filstname + '-'+this.middlename+'-'+ this.lastname
}
}