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

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

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

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

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

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

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

二、watch 默認(rèn)是懶偵聽,使用immediate即時回調(diào)偵聽

最初綁定的時候是不會執(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)建時會立即調(diào)用
      },
      // 強制立即執(zhí)行回調(diào)
      immediate: true
    }
  }
  // ...
}

三、回調(diào)的刷新時機flush: 'post'

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

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

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

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

四、this.$watch()

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

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

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

五、停止偵聽器

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

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

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

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

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

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

總結(jié)

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

相關(guān)文章

  • 使用Vue實現(xiàn)瀑布流的示例代碼

    使用Vue實現(xiàn)瀑布流的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用Vue實現(xiàn)瀑布流,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • vue路由攔截及頁面跳轉(zhuǎn)的設(shè)置方法

    vue路由攔截及頁面跳轉(zhuǎn)的設(shè)置方法

    這篇文章主要介紹了vue路由攔截及頁面跳轉(zhuǎn)的設(shè)置方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-05-05
  • 關(guān)于Vue3中element-plus的el-dialog對話框無法顯示的問題及解決方法

    關(guān)于Vue3中element-plus的el-dialog對話框無法顯示的問題及解決方法

    最近今天在寫一個停車場管理系統(tǒng)的項目時,在用vue3寫前端時,在前端模板選擇上,我一時腦抽,突然決定放棄SpringBoot,選擇了以前幾乎很少用的element-plus,然后果不其然,錯誤連連,下面給大家分享dialog對話框無法顯示的原因,感興趣的朋友一起看看吧
    2023-10-10
  • vuejs事件中心管理組件間的通信詳解

    vuejs事件中心管理組件間的通信詳解

    這篇文章主要為大家詳細(xì)介紹了vuejs事件中心管理組件間的通信,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • VUE3中watch監(jiān)聽使用實例詳解

    VUE3中watch監(jiān)聽使用實例詳解

    watch函數(shù)用來偵聽特定的數(shù)據(jù)源,并在回調(diào)函數(shù)中執(zhí)行副作用,下面這篇文章主要給大家介紹了關(guān)于VUE3中watch監(jiān)聽使用的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 前端插件庫之vue3使用vue-codemirror插件的步驟和實例

    前端插件庫之vue3使用vue-codemirror插件的步驟和實例

    CodeMirror是一款基于JavaScript、面向語言的前端代碼編輯器,下面這篇文章主要給大家介紹了關(guān)于前端插件庫之vue3使用vue-codemirror插件的步驟和實例,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 解決antd Form 表單校驗方法無響應(yīng)的問題

    解決antd Form 表單校驗方法無響應(yīng)的問題

    這篇文章主要介紹了解決antd Form 表單校驗方法無響應(yīng)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Vue3.x使用mitt.js進行組件通信

    Vue3.x使用mitt.js進行組件通信

    Vue2.x 使用 EventBus 進行組件通信,而 Vue3.x 推薦使用 mitt.js。本文就介紹一下mitt.js的具體使用方法,感興趣的可以了解一下
    2021-06-06
  • vue3實現(xiàn)多個表格同時滾動并固定表頭

    vue3實現(xiàn)多個表格同時滾動并固定表頭

    這篇文章主要給大家介紹了vue3中多個表格怎么同時滾動并且固定表頭,文中通過代碼示例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • 前端vue數(shù)組去重的三種方法代碼實例

    前端vue數(shù)組去重的三種方法代碼實例

    數(shù)組去重是我面試時候經(jīng)常會問到應(yīng)聘者的一個問題,所以下面這篇文章主要給大家介紹了關(guān)于前端vue數(shù)組去重的三種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06

最新評論

凤凰县| 莱阳市| 怀远县| 吴川市| 永清县| 安岳县| 平原县| 岳池县| 瑞昌市| 新野县| 伊金霍洛旗| 临海市| 汤阴县| 黄梅县| 盐城市| 德清县| 山阴县| 定结县| 吴川市| 循化| 阳江市| 清丰县| 冀州市| 惠州市| 尉犁县| 平舆县| 威宁| 勐海县| 鸡东县| 桂林市| 九龙坡区| 苍南县| 阿坝县| 庆城县| 永嘉县| 兰考县| 麦盖提县| 寿光市| 绥芬河市| 铅山县| 遂川县|