vue的監聽屬性watch的詳解

文章目錄

  • 1. 監聽屬性 watch
  • 2. 常規用法
  • 3. 監聽對象和route變化
  • 4. 使用場景

1. 監聽屬性 watch

watch 是一個對象,鍵是需要觀察的表達式,用于觀察 Vue 實例上的一個表達式或者一個函數計算結果的變化。回調函數的參數是新值和舊值。值也可以是方法名,或者包含選項的對象。Vue 實例將會在實例化時調用 $watch(),遍歷 watch 對象的每一個 property。

2. 常規用法

watch 監聽有兩個形參,第一個是新值,第二個是舊值。如下例子:使用 watch 監聽了 total 的值,當 total 的值改變時,控制臺會打印出舊值和新值。

<template><div class="home_box"><h1>{{ total }}</h1><button @click="handleAddTotal">增加</button></div>
</template><script>
export default {name: 'Home',watch: {total(newValue, oldValue) {console.log('舊值:', oldValue)console.log('新值:', newValue)}},data() {return {total: 0}},methods: {handleAddTotal() {this.total++}}
}
</script>

3. 監聽對象和route變化

watch監聽的目標,可以是基本類型,也可以是對象,也可以是對象里的一個值。而監聽目標的屬性,可以是一個函數,也可以是一個包含handler(回調函數),immediate(是否初始化后立即執行一次)和deep(是否開啟深度監聽)的對象。

<script>
export default {name: 'Home',watch: {// 監聽基本類型aaa(newValue, oldValue) {console.log('舊值:', oldValue)console.log('新值:', newValue)},// 監聽基本類型,并且回調函數寫在methods里,且初始化加載立即執行一次bbb: {handler: 'handleBBB',immediate: true},// 監聽對象類型,需要開啟深度監聽ccc: {handler: (newValue, oldValue) {console.log('舊值:', oldValue)console.log('新值:', newValue)},deep: true},// 監聽對象里的某個值'ddd.d2.d21': {handler: (newValue, oldValue) {console.log('舊值:', oldValue)console.log('新值:', newValue)}},// 監聽route變化'$route': {handler: (newValue, oldValue) {console.log('舊值:', oldValue)console.log('新值:', newValue)}}},data() {return {aaa: 0,bbb: 0,ccc: {c1: 0,c2: 0},ddd: {d1: 0,d2: {d21: 0}}}},methods: {handleBBB() {this.bbb++}}
}
</script>

4. 使用場景

watch監聽屬性使用場景很多。比如:

  1. 即時表單驗證
  2. 搜索
  3. 監聽數據變化,做出相應改變

如下例子,監聽 keyword 的值,實時打印出來。

<template><div class="home_box"><input type="text" v-model="keyword"></div>
</template><script>
export default {name: 'Home',watch: {keyword: {handler: 'handleKeywordChange'}},data() {return {keyword: '',}},methods: {handleKeywordChange(newValue, oldValue) {console.log(newValue, oldValue)}}
}
</script>

本次分享就到這兒啦,我是鵬多多,如果您看了覺得有幫助,歡迎評論,關注,點贊,轉發,我們下次見~

往期文章

  • css使用aspect-ratio制作4:3和9:16和1:1等等比例布局
  • Web前端頁面開發阿拉伯語種適配指南
  • flutter-使用extended_image操作圖片的加載和狀態處理以及緩存和下載
  • flutter-制作可縮放底部彈出抽屜評論區效果
  • flutter-實現Tabs吸頂的PageView效果
  • Vue2全家桶+Element搭建的PC端在線音樂網站
  • 助你上手Vue3全家桶之Vue3教程
  • 超詳細!Vue的九種通信方式
  • 超詳細!Vuex手把手教程
  • 使用nvm管理node.js版本以及更換npm淘寶鏡像源
  • vue中利用.env文件存儲全局環境變量,以及配置vue啟動和打包命令

個人主頁

  • CSDN
  • GitHub
  • 掘金

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

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

相關文章

如何在 Ubuntu 24.04 服務器上安裝 Apache Solr

Apache Solr 是一個免費、開源的搜索平臺&#xff0c;廣泛應用于實時索引。其強大的可擴展性和容錯能力使其在高流量互聯網場景下表現優異。 Solr 基于 Java 開發&#xff0c;提供了分布式索引、復制、負載均衡及自動故障轉移和恢復等功能。 本教程將指導您如何在 Ubuntu 24.…

Linux內核中TCP三次握手的實現機制詳解

TCP三次握手是建立可靠網絡連接的核心過程,其在內核中的實現涉及復雜的協議棧協作。本文將深入分析Linux內核中三次握手的實現機制,涵蓋客戶端與服務端的分工、關鍵函數調用、協議號驗證及數據包處理流程。 一、三次握手的整體流程 三次握手分為三個階段,客戶端與服務端通過…

服務器--寶塔命令

一、寶塔面板安裝命令 ?? 必須使用 root 用戶 或 sudo 權限執行&#xff01; sudo su - 1. CentOS 系統&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系統…

優化 Spring Boot API 性能:利用 GZIP 壓縮處理大型有效載荷

引言 在構建需要處理和傳輸大量數據的API服務時&#xff0c;響應時間是一個關鍵的性能指標。一個常見的場景是&#xff0c;即使后端邏輯和數據庫查詢已得到充分優化&#xff0c;當API端點返回大型數據集&#xff08;例如&#xff0c;數千條記錄的列表&#xff09;時&#xff0…

【WPF】WPF 項目實戰:構建一個可增刪、排序的光源類型管理界面(含源碼)

&#x1f4a1;WPF 項目實戰&#xff1a;構建一個可增刪、排序的光源類型管理界面&#xff08;含源碼&#xff09; 在實際的圖像處理項目中&#xff0c;我們經常需要對“光源類型”進行篩選或管理。今天我們來一步步構建一個實用的 WPF 界面&#xff0c;實現以下功能&#xff1…

C++23 已棄用特性

文章目錄 1. std::aligned_storage 與 std::aligned_union1.1 特性介紹1.2 被棄用的原因1.3 替代方案 2. std::numeric_limits::has_denorm2.1 特性介紹2.2 被棄用的原因 3. 總結 C23 已棄用特性包括&#xff1a;std::aligned_storage、std::aligned_union 與 std::numeric_lim…

十三、【核心功能篇】測試計劃管理:組織和編排測試用例

【核心功能篇】測試計劃管理:組織和編排測試用例 前言準備工作第一部分:后端實現 (Django)1. 定義 `TestPlan` 模型2. 生成并應用數據庫遷移3. 創建 `TestPlanSerializer`4. 創建 `TestPlanViewSet`5. 注冊路由6. 注冊到 Django Admin第二部分:前端實現 (Vue3)1. 創建 `Test…

STM32最小CLion開發環境

文章目錄 1 必須文件2 工具鏈3 CLion 全局配置4 CLion 新項目配置ST-Link 調試 5 點亮 LED6 分析 elf 文件7 項目模板 1 必須文件 ST 提供的頭文件支持 MDK-ARM, GCC, IAR 3種編譯器, 下面采用 GCC 編譯器 Arm GNU Toolchain Downloads – Arm Developer 或 安裝包版 調試器服…

核函數:解鎖支持向量機的強大能力

在機器學習的世界中&#xff0c;支持向量機&#xff08;SVM&#xff09;是一種強大的分類算法&#xff0c;而核函數則是其背后的“魔法”&#xff0c;讓 SVM 能夠處理復雜的非線性問題。今天&#xff0c;我們就來深入探討核函數的奧秘&#xff0c;看看它們是如何幫助 SVM 在高維…

【Go-6】數據結構與集合

6. 數據結構與集合 數據結構是編程中用于組織和存儲數據的方式&#xff0c;直接影響程序的效率和性能。Go語言提供了多種內置的數據結構&#xff0c;如數組、切片、Map和結構體&#xff0c;支持不同類型的數據管理和操作。本章將詳細介紹Go語言中的主要數據結構與集合&#xf…

3. 簡述node.js特性與底層原理

&#x1f63a;&#x1f63a;&#x1f63a; 一、Node.js 底層原理&#xff08;簡化版&#xff09; Node.js 是一個 基于 Chrome V8 引擎構建的 JavaScript 運行時&#xff0c;底層核心由幾部分組成&#xff1a; 組成部分簡要說明 1.V8 引擎 將 JS 編譯成機器碼執行&#xff0…

Web開發主流前后端框架總結

&#x1f5a5; 一、前端主流框架 前端框架的核心是提升用戶界面開發效率&#xff0c;實現高交互性應用。當前三大主流框架各有側重&#xff1a; React (Meta/Facebook) 核心特點&#xff1a;采用組件化架構與虛擬DOM技術&#xff08;減少真實DOM操作&#xff0c;優化渲染性能&…

大語言模型備案與深度合成算法備案的區別與聯系

“什么情況下做算法備案&#xff1f;” “什么情況下做大模型備案呢&#xff1f;” 進行大模型備案的企業必然要進行算法備案&#xff0c;而進行算法備案的企業則需根據其提供的服務性質判斷是否需要進行大模型備案。 算法備案與大模型備案已經是個老生常談的話題了&#xf…

微軟PowerBI考試 PL300-Power BI 入門

Power BI 入門 上篇更新了微軟PowerBI考試 PL-300學習指南&#xff0c;今天分享PowerBI入門學習內容。 簡介 Microsoft Power BI 是一個完整的報表解決方案&#xff0c;通過開發工具和聯機平臺提供數據準備、數據可視化、分發和管理。 Power BI 可以從使用單個數據源的簡單…

【Hive入門】

之前實習寫的筆記&#xff0c;上傳留個備份。 1. 使用docker-compose快速搭建Hive集群 使用docker快速配置Hive環境 拉取鏡像 2. Hive數據類型 隱式轉換&#xff1a;窄的可以向寬的轉換顯式轉換&#xff1a;cast 3. Hive讀寫文件 SerDe:序列化&#xff08;對象轉為字節碼…

設計模式——簡單工廠模式(創建型)

摘要 本文主要介紹了簡單工廠模式&#xff0c;包括其定義、結構、實現方式、適用場景、實戰示例以及思考。簡單工廠模式是一種創建型設計模式&#xff0c;通過工廠類根據參數決定創建哪一種產品類的實例&#xff0c;封裝了對象創建的細節&#xff0c;使客戶端無需關心具體類的…

抽象工廠模式與策略模式結合使用小案例

目錄 1.前言1.示例說明1.1定義通用接口1.2 定義抽象工廠1.3 支付寶實現1.4 微信實現1.5 客戶端使用代碼&#xff08;組合使用&#xff09;1.6 示例結果輸出1.7 總結 1.前言 上一篇章就通過簡單的案例來了解抽象工廠模式和策略模式的使用&#xff0c;現在就用個支付場景的小案例…

通過WiFi無線連接小米手機攝像頭到電腦的方法

通過WiFi無線連接小米手機攝像頭到電腦的方法 以下是基于Scrcpy和DroidCam兩種工具的無線連接方案&#xff0c;需提前完成開發者模式與USB調試的開啟&#xff08;參考原教程步驟&#xff09;&#xff1a; 方法一&#xff1a;Scrcpy無線投屏&#xff08;無需手機端安裝&#xf…

2025軟件供應鏈安全最佳實踐︱證券DevSecOps下供應鏈與開源治理實踐

項目背景&#xff1a;近年來&#xff0c;云計算、AI人工智能、大數據等信息技術的不斷發展、各行各業的信息電子化的步伐不斷加快、信息化的水平不斷提高&#xff0c;網絡安全的風險不斷累積&#xff0c;金融證券行業面臨著越來越多的威脅挑戰。特別是近年以來&#xff0c;開源…

Java高級 | 【實驗二】Springboot 控制器類+相關注解知識

隸屬文章&#xff1a; Java高級 | &#xff08;二十二&#xff09;Java常用類庫-CSDN博客 系列文章&#xff1a; Java高級 | 【實驗一】Spring Boot安裝及測試 最新-CSDN博客 目錄 一、MVC模式 二、SpringBoot基礎——控制層Controller詳解 &#xff08;一&#xff09;主要工…