欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3 watch和watchEffect的使用以及有哪些區(qū)別

 更新時間:2021年01月26日 14:30:41   作者:靜女  
這篇文章主要介紹了vue3 watch和watchEffect的使用以及有哪些區(qū)別,幫助大家更好的理解和學(xué)習(xí)vue框架,感興趣的朋友可以了解下

1.watch偵聽器

引入watch

import { ref, reactive, watch, toRefs } from 'vue'

對基本數(shù)據(jù)類型進行監(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" />`

對引用類型進行監(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ū)別的詳細內(nèi)容,更多關(guān)于vue3 watch和watchEffect的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue生命周期實例分析總結(jié)

    Vue生命周期實例分析總結(jié)

    Vue的生命周期就是vue實例從創(chuàng)建到銷毀的全過程,也就是new Vue()開始就是vue生命周期的開始。Vue實例有?個完整的?命周期,也就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模版、掛載Dom->渲染、更新->渲染、卸載等?系列過程,稱這是Vue的?命周期
    2022-10-10
  • vue 判斷元素內(nèi)容是否超過寬度的方式

    vue 判斷元素內(nèi)容是否超過寬度的方式

    這篇文章主要介紹了vue 判斷元素內(nèi)容是否超過寬度的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 淺談Vue 數(shù)據(jù)響應(yīng)式原理

    淺談Vue 數(shù)據(jù)響應(yīng)式原理

    這篇文章主要介紹了淺談Vue 數(shù)據(jù)響應(yīng)式原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • 在Vue中是如何封裝axios

    在Vue中是如何封裝axios

    這篇文章主要介紹在Vue中是如何封裝axios的相關(guān)資料,axios的封裝主要是幫助我們簡化代碼和利于后期的更新維護,感興趣的小伙伴可以和小編一起來閱讀下面文章的具體內(nèi)容
    2021-10-10
  • 如何實現(xiàn)一個簡易版的vuex持久化工具

    如何實現(xiàn)一個簡易版的vuex持久化工具

    這篇文章主要介紹了實現(xiàn)一個簡易版的vuex持久化工具,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Vue3項目中父子組件之間互相傳值、傳遞方法詳細介紹

    Vue3項目中父子組件之間互相傳值、傳遞方法詳細介紹

    組件傳值問題是Vue開發(fā)中非常重要的一個話題,涉及到父子組件和非父子組件之間的傳值問題,這篇文章主要介紹了Vue3項目中父子組件之間互相傳值、傳遞方法的相關(guān)資料,需要的朋友可以參考下
    2025-05-05
  • 詳解vue保存自動格式化換行

    詳解vue保存自動格式化換行

    這篇文章主要為大家介紹了vue保存自動格式化換行,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 淺談vuex的基本用法和mapaction傳值問題

    淺談vuex的基本用法和mapaction傳值問題

    今天小編就為大家分享一篇淺談vuex的基本用法和mapaction傳值問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue實現(xiàn)圖片驗證碼生成

    Vue實現(xiàn)圖片驗證碼生成

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)圖片驗證碼生成,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vuex如何在非組件中調(diào)用mutations方法

    vuex如何在非組件中調(diào)用mutations方法

    這篇文章主要介紹了vuex如何在非組件中調(diào)用mutations方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論