欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue中watch監(jiān)聽器用法之deep、immediate、flush

 更新時間:2022年09月22日 09:18:52   作者:前端打工人  
Vue是可以監(jiān)聽到多層級數(shù)據(jù)改變的,且可以在頁面上做出對應展示,下面這篇文章主要給大家介紹了關于vue中watch監(jiān)聽器用法之deep、immediate、flush的相關資料,需要的朋友可以參考下

一、watch 默認是淺層,使用deep深層監(jiān)聽

被偵聽的 property,僅在被賦新值時,才會觸發(fā)回調函數(shù)——而嵌套 property 的變化不會觸發(fā)。如果想偵聽所有嵌套的變更,你需要深層偵聽器:設置deep: true

export default {
  watch: {
    someObject: {
      handler(newValue, oldValue) {
        // 注意:在嵌套的變更中,
        // 只要沒有替換對象本身,
        // 那么這里的 `newValue` 和 `oldValue` 相同
      },
      deep: true
    }
  }
}

注意:深度偵聽需要遍歷被偵聽對象中的所有嵌套的 property,當用于大型數(shù)據(jù)結構時,開銷很大。因此請只在必要時才使用它,并且要留意性能。

二、watch 默認是懶偵聽,使用immediate即時回調偵聽

最初綁定的時候是不會執(zhí)行的,要等到 監(jiān)聽的屬性 改變時才執(zhí)行監(jiān)聽計算。那我們想要一開始就讓他最初綁定的時候就執(zhí)行改怎么辦呢?

immediate表示在watch中首次綁定的時候,是否執(zhí)行handler,值為true則表示在watch中聲明的時候,就立即執(zhí)行handler方法,值為false,則和一般使用watch一樣,在數(shù)據(jù)發(fā)生變化的時候才執(zhí)行handler。

export default {
  // ...
  watch: {
    question: {
      handler(newQuestion) {
        // 在組件實例創(chuàng)建時會立即調用
      },
      // 強制立即執(zhí)行回調
      immediate: true
    }
  }
  // ...
}

三、回調的刷新時機flush: 'post'

當你更改了響應式狀態(tài),它可能會同時觸發(fā) Vue 組件更新和偵聽器回調。

默認情況下,用戶創(chuàng)建的偵聽器回調,都會在 Vue 組件更新之前被調用。這意味著你在偵聽器回調中訪問的 DOM 將是被 Vue 更新之前的狀態(tài)。

如果想在偵聽器回調中能訪問被 Vue 更新之后的DOM,你需要指明 flush: 'post' 選項:

export default {
  // ...
  watch: {
    key: {
      handler() {},
      flush: 'post'
    }
  }
}

四、this.$watch()

我們也可以使用組件實例的 $watch() 方法來命令式地創(chuàng)建一個偵聽器:

export default {
  created() {
    this.$watch('question', (newQuestion) => {
      // ...
    })
  }
}

如果要在特定條件下設置一個偵聽器,或者只偵聽響應用戶交互的內容,這方法很有用。它還允許你提前停止該偵聽器。

五、停止偵聽器

用 watch 選項或者 $watch() 實例方法聲明的偵聽器,會在宿主組件卸載時自動停止。因此,在大多數(shù)場景下,你無需關心怎么停止它。

在少數(shù)情況下,你的確需要在組件卸載之前就停止一個偵聽器,這時可以調用 $watch() API 返回的函數(shù):

const unwatch = this.$watch('foo', callback)

// ...當該偵聽器不再需要時
unwatch()

補充:這里一般使用最多的是deep:true,處理對象內部屬性的變化,常用寫法如下:

watch:{
// 對象的監(jiān)聽,采用deep:true
obj: {
    handler:function(newVal){//監(jiān)聽到屬性變化進行邏輯處理},
    deep:true
 },
 'obj.name': {
    handler:function(newVal){//監(jiān)聽到屬性變化進行邏輯處理},
 }
}

總結

到此這篇關于vue中watch監(jiān)聽器用法之deep、immediate、flush的文章就介紹到這了,更多相關vue watch監(jiān)聽器用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 如何解決Vue請求接口出現(xiàn)跨域問題Access-Control-Allow-Origin

    如何解決Vue請求接口出現(xiàn)跨域問題Access-Control-Allow-Origin

    這篇文章主要介紹了如何解決Vue請求接口出現(xiàn)跨域問題Access-Control-Allow-Origin,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue組件開發(fā)之slider組件使用詳解

    vue組件開發(fā)之slider組件使用詳解

    這篇文章主要為大家詳細介紹了vue組件開發(fā)之slider組件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • vue3封裝京東商品詳情頁放大鏡效果組件

    vue3封裝京東商品詳情頁放大鏡效果組件

    這篇文章主要為大家詳細介紹了vue3封裝類似京東商品詳情頁放大鏡效果組件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue-cli如何引入bootstrap工具的方法

    vue-cli如何引入bootstrap工具的方法

    本篇文章主要介紹了vue-cli如何引入bootstrap工具的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Vue仿百度搜索功能

    Vue仿百度搜索功能

    這篇文章主要為大家詳細介紹了Vue仿百度搜索功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Vue實現(xiàn)預覽docx/xlsx/pdf等類型文件功能

    Vue實現(xiàn)預覽docx/xlsx/pdf等類型文件功能

    這篇文章主要介紹了如何在Vue中實現(xiàn)docx/xlsx/pdf等類型文件預覽功能,在實現(xiàn)過程中,需要注意文件的格式和轉換方式,以及插件和組件的使用方法和注意事項,需要的朋友可以參考下
    2023-05-05
  • Vue 2.5.2下axios + express 本地請求404的解決方法

    Vue 2.5.2下axios + express 本地請求404的解決方法

    下面小編就為大家分享一篇Vue 2.5.2下axios + express 本地請求404的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue項目中v-model父子組件通信的實現(xiàn)詳解

    vue項目中v-model父子組件通信的實現(xiàn)詳解

    vue.js,是一個構建數(shù)據(jù)驅動的 web 界面的庫。Vue.js 的目標是通過盡可能簡單的 API 實現(xiàn)響應的數(shù)據(jù)綁定和組合的視圖組件。下面這篇文章主要給大家介紹了關于vue項目中v-model父子組件通信實現(xiàn)的相關資料,需要的朋友可以參考下。
    2017-12-12
  • elementui?el-table底層背景色修改簡單方法

    elementui?el-table底層背景色修改簡單方法

    最近在做項目的時候遇到個需求,需要修改el-table背景色,這里給大家總結下,這篇文章主要給大家介紹了關于elementui?el-table底層背景色修改的相關資料,需要的朋友可以參考下
    2023-10-10
  • vue中手機號,郵箱正則驗證以及60s發(fā)送驗證碼的實例

    vue中手機號,郵箱正則驗證以及60s發(fā)送驗證碼的實例

    下面小編就為大家分享一篇vue中手機號,郵箱正則驗證以及60s發(fā)送驗證碼的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03

最新評論