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

vue深度監(jiān)聽(tīng)(監(jiān)聽(tīng)對(duì)象和數(shù)組的改變)與立即執(zhí)行監(jiān)聽(tīng)實(shí)例

 更新時(shí)間:2020年09月04日 09:54:04   作者:前端@小菜  
這篇文章主要介紹了vue深度監(jiān)聽(tīng)(監(jiān)聽(tīng)對(duì)象和數(shù)組的改變)與立即執(zhí)行監(jiān)聽(tīng)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

1.vue中監(jiān)聽(tīng)對(duì)象數(shù)據(jù)屬性值的改變,可以使用深度監(jiān)聽(tīng)

 data () {
  return {
   form: {
    status: '',
    cpufrequency: '',
    systemstacksize: '',
    scalabilityclass: ''
   }
  }
 },
 watch: {
  form: { // 深度監(jiān)聽(tīng)
   handler(val, oldVal){
    console.log('currentForm',val, oldVal)
    // 但是這兩個(gè)值打印出來(lái)卻都是一樣的,因?yàn)樗鼈兊囊弥赶蛲粋€(gè)對(duì)象/數(shù)組
   },
   deep:true
  }
 }

注意:我們應(yīng)盡量避免在監(jiān)聽(tīng)方法中更改當(dāng)前監(jiān)聽(tīng)對(duì)象的屬性值,以免再次觸發(fā)監(jiān)聽(tīng)函數(shù)

2.若只監(jiān)聽(tīng)某個(gè)或部分屬性值的變化,則可以配合計(jì)算屬性computed來(lái)解決

 data () {
  return {
   form: {
    status: '',
    cpufrequency: '',
    systemstacksize: '',
    scalabilityclass: ''
   }
  }
 },
 computed: {
  status() {
   return this.form.status
  }
 },
 watch: {
  status() {
   console.log('currentVal', this.status)
  }
 }

當(dāng)然,上面這種方法會(huì)多出一個(gè)計(jì)算屬性,并不是最好的方法,通過(guò)查看官方api,其實(shí)還有一種方法:

 data () {
  return {
   form: {
    status: '',
    cpufrequency: '',
    systemstacksize: '',
    scalabilityclass: ''
   }
  }
 },
 watch: {
  'form.status'(val, oldVal) {
   console.log('currentVal', val)
  }
 }

3.取消監(jiān)聽(tīng)

var unwatch = vm.$watch('a', cb) // 返回一個(gè)取消監(jiān)聽(tīng)函數(shù)

unwatch() // 取消觀察函數(shù)

4.立即觸發(fā)監(jiān)聽(tīng)

我們有時(shí)會(huì)有這個(gè)需求,在頁(yè)面初始化時(shí)執(zhí)行某個(gè)監(jiān)聽(tīng)。因此,我們可能會(huì)在 created 中去調(diào)用需要執(zhí)行的監(jiān)聽(tīng)代碼,但現(xiàn)在我們可以使用 immediate 來(lái)實(shí)現(xiàn)這個(gè)功能。

 watch: {
  'form.status'() {
   handler(val, oldVal) {
    // 執(zhí)行一些操作
   },
   immediate: true
  }
 }

補(bǔ)充知識(shí):vue watch監(jiān)聽(tīng)數(shù)據(jù),新老值一樣?讓其不一樣吧!

我就廢話不多說(shuō)了,大家還是直接看代碼吧~

 data:{
    testData:{
      dataInfo:{
        a: '我是a',
        b: '我是b'
      }
    }
  },
  watch: {
   testData: {
    handler: (val, olVal) => {
     console.log('我變化了', val, olVal)
    },
    deep: true
   }
  }

如果testData發(fā)生了變化,就會(huì)打印出val,olVal,但是他們打印出來(lái)的結(jié)果都是一樣的,因?yàn)閿?shù)據(jù)同源。雖然可以監(jiān)聽(tīng)到他的變化,但是要比較數(shù)據(jù)差異就不行了。如果想要得到不同的值可以結(jié)合計(jì)算屬性。

  data:{
    testData:{
      dataInfo:{
        a: '我是a',
        b: '我是b'
      }
    }
  },
  watch: {
   testDataNew: {
    handler: (val, olVal) => {
     console.log('我變化了', val, olVal)
    },
    deep: true
   }
  },
  computed: {
   testDataNew() {
    return JSON.parse(JSON.stringify(this.testData))
   }
  }

以上這篇vue深度監(jiān)聽(tīng)(監(jiān)聽(tīng)對(duì)象和數(shù)組的改變)與立即執(zhí)行監(jiān)聽(tīng)實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3子組件實(shí)現(xiàn)v-model用法的示例代碼

    Vue3子組件實(shí)現(xiàn)v-model用法的示例代碼

    在Vue 3中,實(shí)現(xiàn)自定義的input組件并支持v-model綁定,涉及到對(duì)modelValue這個(gè)默認(rèn)prop的處理和對(duì)應(yīng)的update:modelValue事件的觸發(fā),本文給大家介紹了Vue3子組件實(shí)現(xiàn)v-model用法的示例,需要的朋友可以參考下
    2024-04-04
  • Vue2中使用axios的3種方法實(shí)例總結(jié)

    Vue2中使用axios的3種方法實(shí)例總結(jié)

    axios從功能上來(lái)說(shuō)就是主要用于我們前端向后端發(fā)送請(qǐng)求,是基于http客戶端的promise,面向?yàn)g覽器和nodejs,下面這篇文章主要給大家介紹了關(guān)于Vue2中使用axios的3種方法,需要的朋友可以參考下
    2022-09-09
  • 詳解vue3結(jié)合ts項(xiàng)目中使用mockjs

    詳解vue3結(jié)合ts項(xiàng)目中使用mockjs

    這篇文章主要為大家介紹了vue3結(jié)合ts項(xiàng)目中使用mockjs示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • vue開(kāi)發(fā)中如何在js文件里使用pinia和組件同步

    vue開(kāi)發(fā)中如何在js文件里使用pinia和組件同步

    在JavaScript文件中封裝涉及到使用Pinia的方法時(shí),發(fā)現(xiàn)Pinia和組件內(nèi)容并不同步,二者的狀態(tài)是獨(dú)立的,解決辦法是,在新建對(duì)象的時(shí)候,將Pinia作為參數(shù)傳入,本文給大家介紹vue開(kāi)發(fā)中如何在js文件里使用pinia和組件同步,感興趣的朋友一起看看吧
    2024-10-10
  • VUE 記賬憑證模塊組件的示例代碼

    VUE 記賬憑證模塊組件的示例代碼

    這篇文章主要介紹了VUE記賬憑證模塊組件的實(shí)例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Vue內(nèi)部渲染視圖的方法

    Vue內(nèi)部渲染視圖的方法

    這篇文章主要介紹了Vue內(nèi)部渲染視圖的方法,本文通過(guò)實(shí)例代碼圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Vue項(xiàng)目中引入ESLint校驗(yàn)代碼避免代碼錯(cuò)誤

    Vue項(xiàng)目中引入ESLint校驗(yàn)代碼避免代碼錯(cuò)誤

    這篇文章主要為大家介紹了Vue項(xiàng)目中引入ESLint插件校驗(yàn)代碼避免代碼錯(cuò)誤的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 如何利用vue+vue-router+elementUI實(shí)現(xiàn)簡(jiǎn)易通訊錄

    如何利用vue+vue-router+elementUI實(shí)現(xiàn)簡(jiǎn)易通訊錄

    這篇文章主要介紹了如何利用vue+vue-router+elementUI實(shí)現(xiàn)簡(jiǎn)易通訊錄,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • vue實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音功能詳解

    vue實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音功能詳解

    這篇文章主要介紹了vue實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音功能詳解的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 在組件中修改vuex中state的具體實(shí)現(xiàn)方法

    在組件中修改vuex中state的具體實(shí)現(xiàn)方法

    在組件中修改 Vuex 中的 state,根據(jù)使用的 Vue 版本(Vue 2 或 Vue 3)不同,有不同的操作方式,但總體思路都是借助 Vuex 提供的 mutations 或 actions 來(lái)實(shí)現(xiàn),以下分別介紹兩種版本下的具體實(shí)現(xiàn)方法,需要的朋友可以參考下
    2025-02-02

最新評(píng)論

时尚| 东港市| 镇安县| 大庆市| 金华市| 丹寨县| 中牟县| 扎囊县| 靖边县| 房产| 清河县| 沾化县| 南召县| 满洲里市| 浙江省| 宝鸡市| 渭源县| 永安市| 绥德县| 延吉市| 吐鲁番市| 灵石县| 大关县| 安阳市| 彭水| 鄱阳县| 阜新| 永丰县| 贵州省| 武清区| 宝清县| 诸城市| 肥城市| 济阳县| 宁陵县| 莱西市| 成武县| 洪江市| 南平市| 龙江县| 葵青区|