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

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

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

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

 data () {
  return {
   form: {
    status: '',
    cpufrequency: '',
    systemstacksize: '',
    scalabilityclass: ''
   }
  }
 },
 watch: {
  form: { // 深度監(jiān)聽
   handler(val, oldVal){
    console.log('currentForm',val, oldVal)
    // 但是這兩個值打印出來卻都是一樣的,因為它們的引用指向同一個對象/數(shù)組
   },
   deep:true
  }
 }

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

2.若只監(jiān)聽某個或部分屬性值的變化,則可以配合計算屬性computed來解決

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

當然,上面這種方法會多出一個計算屬性,并不是最好的方法,通過查看官方api,其實還有一種方法:

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

3.取消監(jiān)聽

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

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

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

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

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

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

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

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

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

  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)聽(監(jiān)聽對象和數(shù)組的改變)與立即執(zhí)行監(jiān)聽實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    Vue項目中引入ESLint校驗代碼避免代碼錯誤

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

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

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

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

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

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

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

最新評論

清水河县| 海兴县| 太谷县| 四会市| 莆田市| 海兴县| 鹤峰县| 府谷县| 得荣县| 曲水县| 元氏县| 景泰县| 南安市| 嘉祥县| 平山县| 尼木县| 富顺县| 内黄县| 铅山县| 商洛市| 布尔津县| 轮台县| 武宁县| 临漳县| 惠东县| 漾濞| 新密市| 万源市| 东城区| 泗阳县| 东莞市| 北流市| 清涧县| 承德市| 肇庆市| 南召县| 广南县| 满城县| 绵阳市| 荔波县| 稻城县|