最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Vue的監(jiān)聽屬性

 更新時(shí)間:2021年11月24日 15:58:05   作者:浪漫主義碼農(nóng)  
這篇文章主要為大家介紹了Vue的監(jiān)聽屬性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

Vue監(jiān)聽屬性

什么是監(jiān)聽屬性?

所謂監(jiān)聽就是對(duì)內(nèi)置對(duì)象的狀態(tài)或者屬性變化進(jìn)行監(jiān)聽并且做出反應(yīng)的響應(yīng),監(jiān)聽屬性,意思就是可以監(jiān)視其他數(shù)據(jù)的變化。

監(jiān)聽屬性和計(jì)算屬性的區(qū)別?

計(jì)算屬性是依賴的值改變后重新計(jì)算結(jié)果更新DOM,會(huì)進(jìn)行緩存。

屬性監(jiān)聽的是屬性值,當(dāng)定義的值發(fā)生變化時(shí),執(zhí)行相對(duì)應(yīng)的函數(shù)。

最主要的用途區(qū)別:

計(jì)算屬性不能執(zhí)行異步任務(wù)。計(jì)算屬性一般不會(huì)用來(lái)向服務(wù)器請(qǐng)求或者執(zhí)行異步任務(wù),因?yàn)楹臅r(shí)可能會(huì)比較長(zhǎng),我們的計(jì)算屬性要實(shí)時(shí)更新。所以這個(gè)異步任務(wù)就可以用監(jiān)聽屬性來(lái)做。

總之一句話:computed能實(shí)現(xiàn)的,watch都能實(shí)現(xiàn),computed不能實(shí)現(xiàn)的,watch也能實(shí)現(xiàn)

監(jiān)聽屬性的使用

使用watch配置項(xiàng),在配置項(xiàng)里面寫上要監(jiān)視的屬性,每次屬性值的變化都會(huì)觸發(fā)handler函數(shù)回調(diào),也可以監(jiān)視計(jì)算屬性的變化。

在這里插入圖片描述

例子:

監(jiān)視輸入框的變化

在這里插入圖片描述

代碼

<template>
<div class="main">
    我:<el-input v-model="name" placeholder="請(qǐng)輸入名字"></el-input>
    好友1<el-input v-model="friends.friend_1" placeholder="請(qǐng)輸入名字"></el-input>
    好友2<el-input v-model="friends.friend_2" placeholder="請(qǐng)輸入名字"></el-input>
</div>
</template>
<script>
export default {
  data(){
    return{
      name:'浪漫主義碼農(nóng)',
      friends:{friend_1:'張三',friend_2:'李四'}
    }
  },
  watch:{
    name:{
      handler(newValue,oldValue){  //newValue 新的值,oldValue變化前的值
        console.log(newValue,oldValue)
        this.friends.friend_1='王五'
      }
    },
    //監(jiān)視多級(jí)結(jié)構(gòu)中某個(gè)屬性的變化
    'friends.friend_1':{
      handler(newValue,oldValue){
        console.log(newValue,oldValue)
      }
    },
    'friends.friend_2':{
      handler(newValue,oldValue){
        console.log(newValue,oldValue)
      }
    },
  }
};
</script>

深度監(jiān)聽

當(dāng)我們的對(duì)象有多層結(jié)構(gòu)的時(shí)候,我們要監(jiān)聽的對(duì)象的屬性很多,避免一個(gè)一個(gè)屬性單獨(dú)寫,這個(gè)時(shí)候用到深度監(jiān)聽。

在watch配置中,監(jiān)視屬性對(duì)象中,配置deep 設(shè)置為 true 用于監(jiān)聽多級(jí)對(duì)象或者數(shù)組內(nèi)部值的變化

 watch:{
    //監(jiān)視多級(jí)結(jié)構(gòu)中所有屬性的變化
    friends:{
      handler(newValue,oldValue){
        console.log(newValue,oldValue,"aa")
      },
      deep:true, //開啟深度監(jiān)聽
    }
  }

在這里插入圖片描述

注意:這里有個(gè)問(wèn)題,深度監(jiān)聽時(shí)會(huì)出現(xiàn)新舊值相同的現(xiàn)象?

官方的解釋:

在變異(不是替換)對(duì)象或數(shù)組時(shí),舊值將與新值相同,因?yàn)樗鼈兊囊弥赶蛲粋€(gè)對(duì)象/數(shù)組。Vue不會(huì)保留變異之前值的副本

就是導(dǎo)致了指針的變化。在我的js深拷貝你還不會(huì)嗎 文章里講到數(shù)據(jù)的存儲(chǔ)

立即調(diào)用

和deep配置的地方一樣。

immediate 設(shè)置為 true 將立即以觸發(fā)當(dāng)前handler回調(diào)

  watch:{
    name:{
      handler(newValue,oldValue){  //newValue 新的值,oldValue變化前的值
        console.log(newValue,oldValue)
        this.friends.friend_1='王五'
      },
      immediate:true
    },
  }

在頁(yè)面加載的時(shí)候就執(zhí)行了一次,所以舊數(shù)據(jù)為undefined

在這里插入圖片描述

總結(jié)

watch監(jiān)聽屬性通??梢杂迷?數(shù)據(jù)持久化、派發(fā)事件并同步/異步執(zhí)行,驗(yàn)證格式…

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • vue中的v-touch事件用法說(shuō)明

    vue中的v-touch事件用法說(shuō)明

    這篇文章主要介紹了vue中的v-touch事件用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Vue調(diào)試神器vue-devtools安裝方法

    Vue調(diào)試神器vue-devtools安裝方法

    本篇文章主要介紹了Vue調(diào)試神器vue-devtools安裝方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • VUE3.2項(xiàng)目使用Echarts5.4詳細(xì)步驟總結(jié)

    VUE3.2項(xiàng)目使用Echarts5.4詳細(xì)步驟總結(jié)

    Vue3.2是一款非常流行的JavaScript框架,它讓在前端領(lǐng)域開發(fā)變得更加的便捷,下面這篇文章主要給大家介紹了關(guān)于VUE3.2項(xiàng)目使用Echarts5.4的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 解決vue中l(wèi)ess的使用問(wèn)題

    解決vue中l(wèi)ess的使用問(wèn)題

    這篇文章主要介紹了解決vue中l(wèi)ess的使用問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • vue3中$attrs的變化與inheritAttrs的使用詳解

    vue3中$attrs的變化與inheritAttrs的使用詳解

    $attrs現(xiàn)在包括class和style屬性。?也就是說(shuō)在vue3中$listeners不存在了,vue2中$listeners是單獨(dú)存在的,在vue3?$attrs包括class和style屬性,?vue2中?$attrs?不包含class和style屬性,這篇文章主要介紹了vue3中$attrs的變化與inheritAttrs的使用?,需要的朋友可以參考下
    2022-10-10
  • Vue package.json配置深入分析

    Vue package.json配置深入分析

    這篇文章主要介紹了Vue package.json配置,package.json是每個(gè)前端項(xiàng)目都會(huì)有的json文件,位于項(xiàng)目的根目錄中。很多腳手架在創(chuàng)建項(xiàng)目的時(shí)候會(huì)幫我們自動(dòng)初始化好 package.json
    2023-01-01
  • Vue+element使用row-class-name修改el-table某一行解決背景色無(wú)效的方法

    Vue+element使用row-class-name修改el-table某一行解決背景色無(wú)效的方法

    本文主要介紹了Vue+element使用row-class-name修改el-table某一行解決背景色無(wú)效的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 解決echarts中橫坐標(biāo)值顯示不全(自動(dòng)隱藏)問(wèn)題

    解決echarts中橫坐標(biāo)值顯示不全(自動(dòng)隱藏)問(wèn)題

    這篇文章主要介紹了解決echarts中橫坐標(biāo)值顯示不全(自動(dòng)隱藏)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • vue在index.html中引入靜態(tài)文件不生效問(wèn)題及解決方法

    vue在index.html中引入靜態(tài)文件不生效問(wèn)題及解決方法

    這篇文章主要介紹了vue在index.html中引入靜態(tài)文件不生效問(wèn)題及解決方法,本文給大家分享兩種原因分析,通過(guò)實(shí)例代碼講解的非常詳細(xì) ,需要的朋友可以參考下
    2019-04-04
  • vue2實(shí)現(xiàn)pdf電子簽章問(wèn)題記錄

    vue2實(shí)現(xiàn)pdf電子簽章問(wèn)題記錄

    仿照e簽寶,實(shí)現(xiàn)pdf電子簽章?=>?拿到pdf鏈接,移動(dòng)章的位置,獲取章的坐標(biāo),怎么實(shí)現(xiàn)呢,下面小編給大家介紹vue2實(shí)現(xiàn)pdf電子簽章問(wèn)題記錄,感興趣的朋友一起看看吧
    2023-12-12

最新評(píng)論

浪卡子县| 洞口县| 黄山市| 双柏县| 东安县| 榆树市| 项城市| 珠海市| 田阳县| 德庆县| 外汇| 河北省| 永和县| 栾城县| 兴义市| 潮州市| 湘阴县| 锡林浩特市| 奉贤区| 肇东市| 隆化县| 渭源县| 遵义市| 郧西县| 锡林浩特市| 潜江市| 宝清县| 邢台县| 来宾市| 辉南县| 正宁县| 吉林市| 莱州市| 滦平县| 周宁县| 萝北县| 红安县| 新巴尔虎左旗| 丁青县| 桐乡市| 万州区|