vue2 偵聽器watch

一、watch 核心作用

  • 監測數據變化:當被監聽的數據發生改變時,自動執行指定的處理函數
  • 處理副作用:適合執行異步操作(如接口請求)、復雜邏輯處理等 “副作用” 代碼

二、基礎語法(3 種寫法)

  1. 簡單寫法(函數形式)
    適用于簡單邏輯,直接監聽數據變化:

    watch: {// 監聽data中的countcount(newVal, oldVal) {console.log(`count從${oldVal}變成了${newVal}`);}
    }
    
  2. 完整配置寫法(對象形式)
    適用于需要深度監聽、立即執行等場景:

    watch: {user: {// 處理函數handler(newVal, oldVal) {console.log('用戶信息變了');},deep: true,      // 深度監聽(對象內部屬性變化)immediate: true  // 初始化時立即執行一次}
    }
    
  3. 動態監聽($watch 方法)
    適用于在方法或生命周期中動態添加監聽:

    mounted() {// 返回一個取消監聽的函數const unwatch = this.$watch('message', (newVal) => {console.log('message變了:', newVal);});// 需要時取消監聽// unwatch();
    }
    

三、監聽不同類型數據的注意事項

  1. 基本類型(String/Number/Boolean)
    直接監聽即可,新舊值都能正確獲取:

    watch: {username(newVal, oldVal) {// 正確獲取新舊值}
    }
    
  2. 對象(Object)

    • 默認只監聽對象引用變化,不監聽內部屬性變化
    • 需開啟?deep: true?才能監聽內部屬性變化
    • 優化:直接監聽對象的某個屬性(性能更好)
    watch: {// 直接監聽對象的屬性(推薦)'user.age'(newVal) {console.log('年齡變了:', newVal);}
    }
    

  3. 數組(Array)

    • 監聽數組時,push/pop/splice?等方法會觸發監聽
    • 坑點:直接通過索引修改元素(如?this.arr[0] = 10)不會觸發監聽
    • 解決:用?splice?或重新賦值數組(this.arr = [...this.arr]

四、與 computed 的核心區別

對比項watchcomputed
本質數據變化的 “觀察者”依賴數據的 “計算屬性”
執行時機數據變化時執行依賴變化時自動計算
返回值無返回值必須有返回值
異步操作適合(如接口請求)不適合(不能寫異步代碼)
緩存機制無緩存有緩存(依賴不變不重算)

記憶口訣
“computed 算結果,watch 做動作”
“復雜計算用 computed,異步操作找 watch”

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/922174.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/922174.shtml
英文地址,請注明出處:http://en.pswp.cn/news/922174.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

今天繼續學習Linux系統中shell腳本

首先繼續上次的內容看一下另一個案例案例:持續檢查服務器負載uptime查看負載情況(也可以用top命令)[rootlocalhost ~]# uptime22:11:26 up 7:05, 3 users, load average: 0.00, 0.00, 0.00#!/bin/bash #Function:持續檢查服務器負載,如果負…

Win系統下配置PCL庫第一步之下載Visual Studio和Qt 5.15.2(超詳細)

之前在上篇文章Win系統下配置PCL庫_windows pcl庫 下載-CSDN博客中提到配置PCL庫的教程是下載Visual Studio和Qt 5.15.2,后續在測試中我發現前面這兩步很重要,一般Qt在線下載器選項選不好的話Qt是裝的Qt6,在VTK編譯的時候Qt6往往需要C17編譯&…

openCV3.0 C++ 學習筆記補充(自用 代碼+注釋)---持續更新 四(91-)

環境:OpenCV3.2.0 VS201791、合并Y方向重疊的輪廓以輪廓的最小垂直外接矩形框的y為依據,合并y重疊的輪廓。數學邏輯:幾何合并的數學表達坐標系統:假設矩形由左上角坐標(x, y)和寬高(width, height)定義。合并公式:合并…

numpy數組的升維和降維的方法集錦

為適配計算包對numpy數組的維度要求,對numpy數組進行升維或降維轉化,是非常常見的操作。這里嘗試通過多種方式對numpy數組進行升維或降維。1 數組升維1.1 np.expand_dims在0維升維,示例如下a np.array([1,2,3,4,5]) np.expand_dims(a, axis0…

介紹 Python Elasticsearch Client 的 ES|QL 查詢構建器

作者:來自 Elastic Miguel Grinberg 學習如何使用 ES|QL 查詢構建器,這是一個新的 Python Elasticsearch client 功能,可以更輕松地使用熟悉的 Python 語法構建 ES|QL 查詢。 想要獲得 Elastic 認證嗎?快來了解下一期 Elasticsear…

三坐標測量儀:高精度測量內徑檢測手段及其實際運用

在工業制造領域中,內徑尺寸的精準度直接關系到產品的裝配性能、運行穩定性乃至使用壽命。傳統檢測方法如卡尺、內徑千分尺等難以滿足高精度、復雜結構件的需求。三坐標測量儀技術的出現,打破了這一困境,成為當前工業領域實現高精度內徑檢測的…

DIPMARK:一種隱蔽、高效且具備魯棒性的大語言模型水印技術

摘要水印技術為通過在數據中嵌入隱蔽信息來保障數據安全提供了一種很有前景的方法。該領域的一個首要挑戰在于,在水印嵌入過程中保持原始數據的分布。我們的研究拓展并優化了現有的水印框架,著重強調了保持分布(DiP)水印的重要性。…

IMU傳感器價格與高精度慣性導航系統供應商分析

本段將對IMU傳感器價格及高精度慣性導航系統的市場情況進行概覽。IMU傳感器作為慣性導航的重要組成部分,其價格水平受到技術、需求和供應商競爭等多重因素的影響。隨著無人機、自動駕駛車輛等新興應用場景的興起,IMU傳感器的市場需求逐漸攀升。這不僅帶動…

3-9〔OSCP ? 研記〕? WEB應用攻擊?利用REST API提權

鄭重聲明: 本文所有安全知識與技術,僅用于探討、研究及學習,嚴禁用于違反國家法律法規的非法活動。對于因不當使用相關內容造成的任何損失或法律責任,本人不承擔任何責任。 如需轉載,請注明出處且不得用于商業盈利。 …

UE5 基礎應用 —— 07 - 角色藍圖 簡單使用

目錄 一、角色藍圖 1.1 Pawn / Character 1.2 角色基類 1.3 角色基類設置 1.3.1 基礎設置 1.3.2 角色移動和相機旋轉 1.3.3 角色移動 —— 鎖定視角 1.3.4 角色跳躍 1.4 角色派生類設置 1.4.1 添加動畫藍圖 一、角色藍圖 1.1 Pawn / Character Pawn / Character 有什…

流暢的Python(二) 豐富的序列

流暢的Python 第二章:豐富的序列 摘要:在日常Python開發中,我們頻繁與各種數據結構打交道,其中序列類型(如列表、元組、字符串)是基石。然而,你是否曾因對它們理解不深,而在性能優化…

嵌入式 - ARM6

一、按鍵1. 初始化key.c手冊C32 - IOMUXC1. 復用功能配置IOMUXC_SW_MUX_CTL_PAD_UART1_CTS_B: 低四位(0101) IOMUXC_SetPinMux(IOMUXC_UART1_CTS_B_GPIO1_IO18, 0);SION(信號監控)1: 0 //0 DISABLED — Input Path is determined by functionality MUX_…

菊水PBZ電源在蓄電池充放電測試中的應用探討

通過高速雙極性電源PBZ系列進行蓄電池恒流,恒壓充電的方法 對于儀器廠商來說,要求“請按照使用說明書使用”是產品的使用方針,或者說是正確用法。但是,作為具有代表性的通用產品,直流電源的實際使用方法可謂五花八門&…

Zephyr嵌入式實時操作系統安裝配置

Zephyr簡介 Zephyr 是一款由 Linux 基金會 托管的開源實時操作系統(RTOS),專為資源受限的嵌入式設備(從微控制器到小型邊緣計算節點)設計,廣泛應用于物聯網(IoT)、工業自動化、消費電子、醫療設備、汽車電子等領域。其核心優勢在于輕量級、高可配置性和對多架構硬件的廣…

Linux系統 SELinux 安全管理與故障排查

一、SELinux 安全上下文管理1. SELinux 簡介SELinux(Security-Enhanced Linux)是 Linux 內核的強制訪問控制(MAC)安全子系統,通過基于標簽的訪問控制實現細粒度權限管理,遵循最小權限原則。SELinux 有三種工…

解密完全二叉樹順序存儲之堆結構

前言:各位老鐵好,在前面博客中,筆者分享了有關二叉樹的博客,在那篇博客中,筆者講到了完全二叉樹的存儲結構中有兩種存儲方式,一種是順序存儲,一種是鏈式存儲,鏈式存儲筆者已經帶各位老鐵實現過了…

通過針刺!鵬輝能源移動電源電池革新之作 Secu 系列:不燃電解液加持,充電寶安全新選擇

9月11日,鵬輝能源對外發布新一代移動電源高安全電池Secu系列。該產品通過采用不燃的電解液破解移動電源產品安全難題,直擊當下移動電源安全事故頻發的行業痛點,為移動電源行業帶來更安全、更可靠的半固態電池解決方案。數字化時代&#xff0c…

軟件定義汽車(SDV)與區域電子電氣架構(Zonal EEA)的技術革新

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

在 Docker Compose 中解決文件權限不足的問題

在使用 Docker 和 Docker Compose 構建應用時,由于容器中的文件權限不足而導致某些容器可能無法訪問宿主機上的文件,或者容器內的文件系統無法正確讀取或寫入文件。問題描述在我的項目中,我使用 Docker Compose 來啟動多個服務,并…

認知語義學對人工智能自然語言處理的深層語義分析:理論啟示與實踐路徑

摘要隨著人工智能(AI)技術的飛速發展,自然語言處理(NLP)已成為其核心驅動力之一。然而,盡管以大型語言模型(LLMs)為代表的現代NLP系統在處理語言任務上取得了前所未有的成功&#xf…