Vue.js 3是一款流行的JavaScript框架,它提供了watch()
方法來監聽元件資料的變化。
一、Vue3中watch()的用法
在Vue.js 3中,watch()方法可以用來監聽單一資料、多個資料、取得到新舊值的情況。以下是watch()的基本使用方式:
import { watch, ref } from 'vue' export default { setup() { const count = ref(0) watch(count, (newVal, oldVal) => { console.log(`New: ${newVal}, Old: ${oldVal}`) }) return { count } } }
在上面的程式碼中,我們定義了一個ref類型的變數count
,並使用watch()
方法監聽count
變數的變化。當count
變數的值變更時,watch()
回呼函數將會被執行,並將新值和舊值作為參數傳遞給該函數。
除了單一變數的監聽,watch()
還可以監聽多個變數的變化,以及取得舊值/新值的情況。
多個變數的監聽:
watch( [count1, count2], ([newCount1, newCount2], [oldCount1, oldCount2]) => { console.log( `New count1: ${newCount1}, Old count1: ${oldCount1}, New count2: ${newCount2}, Old count2: ${oldCount2}` ) } )
取得新舊值:
watch( [count1, count2], ([newCount1, newCount2], [oldCount1, oldCount2]) => { console.log(`New count1: ${newCount1}, Old count1: ${oldCount1}`) console.log(`New count2: ${newCount2}, Old count2: ${oldCount2}`) }, { deep: true } )
在這個範例中,我們傳遞了一個選項對象,用來開啟深層監聽。這種方式可以讓watch()監聽的變數案例更加龐大複雜。
二、Vue3中watch()的作用
watch()
方法在Vue.js 3中有著非常重要的作用,它可以幫助我們監聽資料的變化,並按需執行一些任務。
例如,在前端開發中常遇到監聽使用者輸入框的情況,當使用者輸入內容變更時,我們需要即時更新展示相關的內容。例如,當輸入框內容為空時,隱藏某個元件,當輸入框內容不為空時,顯示某個元件。
import { watch, ref } from 'vue' export default { setup() { const userInput = ref('') const showComponent = ref(false) watch(userInput, (newVal) => { if (newVal === '') { showComponent.value = false } else { showComponent.value = true } }) return { userInput, showComponent } } }
在上面的程式碼中,我們監聽了使用者輸入框的變化,並根據使用者輸入框的值來展示/隱藏元件。
watch()
方法還可以實現更多複雜的功能,例如非同步取得資料並在資料更新時重新渲染頁面。
三、Vue3中新引進的監聽方法watchEffect
在Vue.js 3中,watchEffect()
方法被引進。 watchEffect()
方法與watch()
方法的行為類似,但沒有提供對舊值和新值的存取。它可以在資料變化時自動執行回調函數。
import { watchEffect, ref } from 'vue' export default { setup() { const count = ref(0) watchEffect(() => { console.log(`Count is: ${count.value}`) }) return { count } } }
在上面的程式碼中,我們定義了一個count
變量,並使用watchEffect
()方法監聽該變數的變化。每當count
變數的值改變時,watchEffect()
回呼函數將會被執行。
以上是vue3中的watch()怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

前端有没有现成的库,可以直接用来绘制 Flowable 流程图的?下面本篇文章就跟小伙伴们介绍一下这两个可以绘制 Flowable 流程图的前端库。

vue不是前端css框架,而是前端JavaScript框架。Vue是一套用于构建用户界面的渐进式JS框架,是基于MVVM设计模式的前端框架,且专注于View层。Vue.js的优点:1、体积小;2、基于虚拟DOM,有更高的运行效率;3、双向数据绑定,让开发者不用再去操作DOM对象,把更多的精力投入到业务逻辑上;4、生态丰富、学习成本低。

Vue3如何更好地使用qrcodejs生成二维码并添加文字描述?下面本篇文章给大家介绍一下Vue3+qrcodejs生成二维码并添加文字描述,希望对大家有所帮助。

本篇文章我们来了解 Vue2.X 响应式原理,然后我们来实现一个 vue 响应式原理(写的内容简单)实现步骤和注释写的很清晰,大家有兴趣可以耐心观看,希望对大家有所帮助!


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),