vue3 watch和watchEffect的使用以及有哪些區(qū)別
1.watch偵聽器
引入watch
import { ref, reactive, watch, toRefs } from 'vue'
對基本數(shù)據(jù)類型進(jìn)行監(jiān)聽----- watch特性:
1.具有一定的惰性lazy 第一次頁面展示的時候不會執(zhí)行,只有數(shù)據(jù)變化的時候才會執(zhí)行
2.參數(shù)可以拿到當(dāng)前值和原始值
3.可以偵聽多個數(shù)據(jù)的變化,用一個偵聽起承載
setup() {
const name = ref('leilei')
watch(name, (curVal, prevVal) => {
console.log(curVal, prevVal)
})
}
template: `Name: <input v-model="name" />`
對引用類型進(jìn)行監(jiān)聽-----
setup() {
const nameObj = reactive({name: 'leilei', englishName: 'bob'})
監(jiān)聽一個數(shù)據(jù)
watch(() => nameObj.name, (curVal, prevVal) => {
console.log(curVal, prevVal)
})
監(jiān)聽多個數(shù)據(jù)
watch([() => nameObj.name, () => nameObj.name], ([curName, curEng], [prevName, curEng]) => {
console.log(curName, curEng, '----', prevName, curEng)
setTimeout(() => {
stop1()
}, 5000)
})
const { name, englishName } = toRefs(nameObj)
}
template: `Name: <input v-model="name" /> englishName: <input v-model="englishName" />`
2.watchEffect
沒有過多的參數(shù) 只有一個回調(diào)函數(shù)
1.立即執(zhí)行,沒有惰性,頁面的首次加載就會執(zhí)行。
2.自動檢測內(nèi)部代碼,代碼中有依賴 便會執(zhí)行
3.不需要傳遞要偵聽的內(nèi)容 會自動感知代碼依賴,不需要傳遞很多參數(shù),只要傳遞一個回調(diào)函數(shù)
4.不能獲取之前數(shù)據(jù)的值 只能獲取當(dāng)前值
5.一些=異步的操作放在這里會更加合適
watchEffect(() => {
console.log(nameObj.name)
})
偵聽器的取消 watch 取消偵聽器用法相同
const stop = watchEffect(() => {
console.log(nameObj.name)
setTimeout(() => {
stop()
}, 5000)
})
const stop1 = watch([() => nameObj.name, () => nameObj.name], ([curName, curEng], [prevName, curEng]) => {
console.log(curName, curEng, '----', prevName, curEng)
setTimeout(() => {
stop1()
}, 5000)
})
watch也可以變?yōu)榉嵌栊缘?立即執(zhí)行的 添加第三個參數(shù) immediate: true
watch([() => nameObj.name, () => nameObj.name], ([curName, curEng], [prevName, curEng]) => {
console.log(curName, curEng, '----', prevName, curEng)
setTimeout(() => {
stop1()
}, 5000)
}, {
immediate: true
})
以上就是vue3 watch和watchEffect的使用以及有哪些區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于vue3 watch和watchEffect的資料請關(guān)注腳本之家其它相關(guān)文章!
- Vue3中Watch、Watcheffect、Computed的使用和區(qū)別解析
- Vue3.0監(jiān)聽器watch與watchEffect詳解
- vue3中的watch和watchEffect實例詳解
- 淺談Vue3中watchEffect的具體用法
- Vue3?中?watch?與?watchEffect?區(qū)別及用法小結(jié)
- 一文搞懂Vue3中watchEffect偵聽器的使用
- VUE3中watch和watchEffect的用法詳解
- Vue3中watchEffect和watch的基礎(chǔ)應(yīng)用詳解
- Vue3中的?computed,watch,watchEffect的使用方法
- Vue3中watch和watchEffect的區(qū)別及使用技巧總結(jié)
相關(guān)文章
vue excel上傳預(yù)覽和table內(nèi)容下載到excel文件中
這篇文章主要介紹了vue excel上傳預(yù)覽和table內(nèi)容下載到excel文件中,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12
element-ui組件table實現(xiàn)自定義篩選功能的示例代碼
這篇文章主要介紹了element-ui組件table實現(xiàn)自定義篩選功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
基于Vue實現(xiàn)文字轉(zhuǎn)語音播放功能的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何基于Vue實現(xiàn)文字轉(zhuǎn)語音播放應(yīng)用,具有美觀的界面和完整的交互功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-12-12
Vue echarts 實現(xiàn)離線中國地圖的示例代碼(細(xì)化到省份)
這篇文章主要介紹了Vue echarts 實現(xiàn)離線中國地圖,細(xì)化到省份,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09
淺談vue中使用圖片懶加載vue-lazyload插件詳細(xì)指南
本篇文章主要介紹了淺談vue中使用圖片懶加載vue-lazyload插件詳細(xì)指南,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-10-10

