自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Vue3這個(gè)API慎用!可能會(huì)有性能問題!

開發(fā) 前端
Vue3 有一個(gè) API,可能很多人都用過,那就是 watchEffect,他的功能跟 watch 有點(diǎn)類似,但又有些不一樣,用法如下,它會(huì)去自動(dòng)收集依賴的響應(yīng)式數(shù)據(jù),響應(yīng)式數(shù)據(jù)一變,就會(huì)觸發(fā)函數(shù)的重新執(zhí)行

大家好,我是林三心,用最通俗易懂的話講最難的知識(shí)點(diǎn)是我的座右銘,基礎(chǔ)是進(jìn)階的前提是我的初心~

背景

Vue3 有一個(gè) API,可能很多人都用過,那就是 watchEffect,他的功能跟 watch 有點(diǎn)類似,但又有些不一樣,用法如下,它會(huì)去自動(dòng)收集依賴的響應(yīng)式數(shù)據(jù),響應(yīng)式數(shù)據(jù)一變,就會(huì)觸發(fā)函數(shù)的重新執(zhí)行

圖片圖片

謹(jǐn)慎使用!

我發(fā)現(xiàn)組員們很喜歡用watchEffect,他們的意思是watchEffect比較方便,寫起來比較爽

其實(shí)我個(gè)人是很少用 watchEffect 的,因?yàn)槲腋杏X:

  • watchEffect 的依賴不夠明確
  • watchEffect 可能有性能問題

可維護(hù)性較差

先來說第一點(diǎn),我舉個(gè)例子,假如我要監(jiān)聽 a、b、c,然后去執(zhí)行很多邏輯,如果我是使用 watch,我一眼就能看到,依賴項(xiàng)是 a、b、c 這三個(gè)變量,后面接手代碼的開發(fā)者,也能很明確看到執(zhí)行這些邏輯的依賴項(xiàng)是什么

圖片圖片

但是如果你使用的是 watchEffect,那么你下次看代碼時(shí),你得去這么多邏輯中去自己一個(gè)一個(gè)找依賴項(xiàng)是什么,是不是感覺代碼可維護(hù)性變得比較差了?

圖片圖片

性能問題?

再來說說 watchEffect 可能有性能問題,我們看以下例子

圖片圖片

其實(shí) isEven 自始至終都是 true,所以應(yīng)該只執(zhí)行一次函數(shù)就行了,但是 watchEffect 沒有做惰性處理,也就是只要 isEven.value 被重新賦值,函數(shù)就會(huì)重新執(zhí)行一遍,無論 isEven 是否變了,這就會(huì)造成無意義的代碼執(zhí)行~

但是如果是用 watch 就不會(huì)有這種情況發(fā)生


責(zé)任編輯:武曉燕 來源: 前端之神
相關(guān)推薦

2025-03-26 10:29:22

Vue3前端API

2020-09-19 21:15:26

Composition

2023-06-14 08:34:18

Mybatis死鎖框架

2025-02-18 08:10:00

Vue 3JavaScrip開發(fā)

2021-12-16 08:27:54

Vue3 插件Vue應(yīng)用

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2021-03-31 08:01:50

Vue3 Vue2 Vue3 Telepo

2024-03-01 11:32:22

Vue3APIVue.js

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用

2023-11-28 09:03:59

Vue.jsJavaScript

2024-02-01 09:10:04

頁面引導(dǎo)工具Vue3

2020-10-28 08:06:09

Vue3框架數(shù)據(jù)

2021-07-29 12:05:18

Vue3Api前端

2022-06-13 08:39:21

Vue3API

2022-07-13 10:07:31

vue3組件監(jiān)聽器

2022-08-26 10:01:48

Vue3TS

2021-09-08 22:29:46

Windows 11Windows微軟

2021-12-02 05:50:35

Vue3 插件Vue應(yīng)用

2013-02-22 18:28:18

容錯(cuò)服務(wù)器、

2024-03-19 08:35:30

Vue3添加水印維護(hù)版權(quán)標(biāo)識(shí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)