Vue語法進(jìn)階

偵聽器

什么是偵聽器
偵聽器,也稱為監(jiān)聽器,Vue實(shí)例中提供了一個(gè)選項(xiàng)watch用于聲明一個(gè)監(jiān)聽變量的函數(shù)/方法,一旦被監(jiān)聽的變量中數(shù)據(jù)發(fā)生了變化,自動(dòng)執(zhí)行監(jiān)聽函數(shù)/方法中的代碼。
什么時(shí)候使用監(jiān)聽器
項(xiàng)目中需要跟隨數(shù)據(jù)的變化,執(zhí)行后續(xù)的功能函數(shù)(尤其是異步函數(shù)或者消耗資源較大的函數(shù)),可以通過偵聽器改善頁面渲染性能。
基本語法-監(jiān)聽普通數(shù)據(jù)

<div id="app">
      <p>消息數(shù)據(jù):{{message}}</p>
      <button @click="changeMessage">修改數(shù)據(jù)</button>
</div>
<script src="./vue.js"></script>
<script>
    const app = new Vue({
          el:"#app",
          data:{
                  message:'初始消息數(shù)據(jù)',
              },
        methods:{
              changeMessage(){
                    this.message="新消息"
                }
            },
      watch:{
                "message":(newVal,oldVal)=>{
                  console.log("message變量中的數(shù)據(jù)發(fā)生了改變")
                   console.log(newVal,oldVal)
                  }
              }
        })

好了,普通變量數(shù)據(jù)的監(jiān)聽就是那么簡單,相信聰明的你學(xué)起來一定游刃有余!

那么接下來就看看如何監(jiān)聽變量中的數(shù)據(jù)吧!
我們直接用代碼展示

<div id="app">
        <p>對(duì)象數(shù)據(jù):{{ user }}</p>
         <p>姓名:{{ user.name }}</p>
         <p>年齡:{{ user.age }}</p>
</div>
<script src="./vue.js"></script>
<script>
        const app = new Vue({
            el:"#app",
            data:{
                  user:{
                        name:'tom',
                        age:65
                        }
                      },
                watch:{
                          user:{
                                hander(newVal,oldVal){
                                  console.log("用戶修改了user屬性")
                                  console.log(newVal,oldVal)
                                },
                            deep:true
                            }
                      }
                   })

其實(shí)數(shù)組數(shù)據(jù)的監(jiān)聽就是添加一個(gè)deep:true選項(xiàng),它的意思就是深度監(jiān)聽

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

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

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