1. 程式人生 > >watch監控路由 computed計算屬性值區別和用法

watch監控路由 computed計算屬性值區別和用法

watch,computed區別

  1. computed屬性的結果會被快取,除非依賴的響應式屬性變化才會重新計算。主要當作屬性來使用;
  2. methods方法表示一個具體的操作,主要書寫業務邏輯;
  3. 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
          }
        }