Vue計算屬性和偵聽器

計算屬性 computed

簡單模板的表達(dá)式無法完成的業(yè)務(wù)可以通過計算屬性來完成,任何復(fù)雜邏輯,都應(yīng)當(dāng)使用計算屬性。

HTML部分:

<div id="app">
   {{msg.toUpperCase().split('').reverse().join('')}}
</div>

JS部分

new Vue({
  el:"#app",
  data:{
    msg:"hello vue"
  }
})

顯示效果

EUV OLLEH


在模板中放入太多的邏輯會讓模板過重且難以維護(hù)
所以在這個地方 應(yīng)當(dāng)使用計算屬性

如下
HTML部分:

<div id="app">
    {{reversed}}//調(diào)用
</div>

JS部分

new Vue({
  el:"#app",
  data:{
    msg:"hello vue"
  },
  computed: {
    reversed(){
      return this.msg.toUpperCase().split('').reverse().join('')
    }
  }
})

顯示效果

EUV OLLEH

計算屬性具有依賴性,所依賴的屬性發(fā)生改變時,計算屬性就會發(fā)生改變,所依賴的屬性沒改變時,計算屬性不會發(fā)生改變。首次運行時會也發(fā)生改變。


偵聽器 watch

雖然計算屬性在大多數(shù)情況下更合適,但有時也需要一個自定義的偵聽器。當(dāng)需要在數(shù)據(jù)變化時執(zhí)行異步或開銷較大的操作時,這個方式是最有用的。相比計算屬性需要多添加一個初始變量。
HTML部分:

  <div id="app">
   <input type="text" v-model='pwd' placeholder="請輸入密碼">
   {{tip}}//調(diào)用
  </div>

JS部分

new Vue({
  el:"#app",
  data:{
    pwd:"",
    tip:""
  },
  watch: {
    pwd(newVal,oldVal){
        if(newVal===""){
          this.tip="密碼不能為空"
        }else if(newVal.length<6||newVal.length>16){
          this.tip="密碼應(yīng)該6-16位"
        }else{
          this.tip="密碼可用"
        }
      } 
  }
})

在首次打開時,watch不會被運行,所以不會顯示密碼不能為空的提示語。在表單內(nèi)輸入數(shù)據(jù)后才會運行watch并更改元數(shù)據(jù)。


計算屬性與偵聽器的區(qū)別

計算屬性 在頁面初次渲染時直接運行 調(diào)用時直接在模板中渲染 對數(shù)據(jù)有依賴性
偵聽屬性 在頁面初次渲染時不運行 在修改數(shù)據(jù)后才執(zhí)行 調(diào)用的時候需要更改元數(shù)據(jù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 計算屬性和偵聽器 計算屬性 模板內(nèi)的表達(dá)式非常便利,但是設(shè)計它們的初衷是用于簡單運算的。在模板中放入太多的邏輯會讓...
    Program_黑閱讀 878評論 3 9
  • 計算屬性 模板內(nèi)的表達(dá)式非常便利,但是設(shè)計它們的初衷是用于簡單運算的。在模板中放入太多的邏輯會讓模板過重且難以維護(hù)...
    quanCN閱讀 173評論 0 1
  • 祭出demo 計算屬性 計算屬性緩存vs方法函數(shù) 計算屬性vs偵聽屬性 計算屬性的setter 偵聽器 在這個示例...
    rainbowboy閱讀 945評論 0 49
  • 對于任何復(fù)雜邏輯,你都應(yīng)當(dāng)使用計算屬性。 你可以打開瀏覽器的控制臺,自行修改例子中的 vm。vm.reversed...
    波克比閱讀 111評論 0 0
  • 前言 一些初學(xué)者可能對計算屬性和偵聽屬性的使用場景感到困惑不解,本文主要介紹兩者的用法、使用場景及其兩者的區(qū)別。本...
    浪里行舟閱讀 1,228評論 0 2

友情鏈接更多精彩內(nèi)容