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

一個(gè) Vue3 強(qiáng)大的 API,讓你隨心所欲操控?cái)?shù)據(jù)更新!

開發(fā) 前端
需求是這樣的,我有一個(gè)變量?sum,是通過computed去計(jì)算的,且?sum?依賴的變量有的是響應(yīng)式的,有的不是響應(yīng)式的,所以會(huì)造成以下的后果,當(dāng)非響應(yīng)式變量改變時(shí),并不會(huì)觸發(fā)sum?的響應(yīng)式更新,只有響應(yīng)式變量改變時(shí)才會(huì)觸發(fā)sum的響應(yīng)式更新。

背景

最近在做一個(gè)需求的時(shí)候,用到了一個(gè) Vue3 內(nèi)置的 API,發(fā)現(xiàn)真的非常實(shí)用,分享給大家。

需求是這樣的,我有一個(gè)變量 sum,是通過computed去計(jì)算的,且 sum 依賴的變量有的是響應(yīng)式的,有的不是響應(yīng)式的,所以會(huì)造成以下的后果,當(dāng)非響應(yīng)式變量改變時(shí),并不會(huì)觸發(fā)sum 的響應(yīng)式更新,只有響應(yīng)式變量改變時(shí)才會(huì)觸發(fā)sum的響應(yīng)式更新。

圖片圖片

所以我需要用到一個(gè) Vue3 的內(nèi)置 API,它就是customRef。

customRef

創(chuàng)建一個(gè)自定義的 ref,顯式聲明對其依賴追蹤和更新觸發(fā)的控制方式。

類型

圖片圖片

詳細(xì)信息

customRef() 預(yù)期接收一個(gè)工廠函數(shù)作為參數(shù),這個(gè)工廠函數(shù)接受 track 和 trigger 兩個(gè)函數(shù)作為參數(shù),并返回一個(gè)帶有 get 和 set 方法的對象。

一般來說,track() 應(yīng)該在 get() 方法中調(diào)用,而 trigger() 應(yīng)該在 set() 中調(diào)用。然而事實(shí)上,你對何時(shí)調(diào)用、是否應(yīng)該調(diào)用他們有完全的控制權(quán)。

實(shí)踐小案例:防抖 Ref

創(chuàng)建一個(gè)防抖 ref,即只在最近一次 set 調(diào)用后的一段固定間隔后再調(diào)用:

圖片圖片

在組件中使用:

圖片圖片

可控的 computed

圖片圖片

再回到一開始的話題,我遇到的問題是:當(dāng)非響應(yīng)式變量改變時(shí),并不會(huì)觸發(fā)sum 的響應(yīng)式更新,只有響應(yīng)式變量改變時(shí)才會(huì)觸發(fā)sum的響應(yīng)式更新。

所以我們需要當(dāng)非響應(yīng)式變量count1、count2改變的時(shí)候,去手動(dòng)觸發(fā) computed 的計(jì)算,這樣才能更新 sum,但是 computed 返回的不是一個(gè)函數(shù)啊,我們要怎么去手動(dòng)觸發(fā)計(jì)算呢?

所以這時(shí)候就需要一個(gè)可控的 computed,它擁有以下功能:

  • 1、能根據(jù)響應(yīng)式變量去自動(dòng)觸發(fā)計(jì)算更新
  • 2、提供一個(gè)方法讓用戶手動(dòng)去調(diào)用觸發(fā)更新

期望使用方式是這樣的:

圖片圖片

具體的代碼實(shí)現(xiàn)如下:

圖片 圖片

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

2010-03-17 19:54:17

2012-09-05 10:38:38

人大金倉

2009-02-05 09:04:00

局域網(wǎng)切換網(wǎng)絡(luò)配置

2010-05-25 15:37:50

富士通fujitsuprimegy

2015-07-03 10:04:03

2011-08-19 17:34:06

Windows7系統(tǒng)聲音

2010-03-29 14:31:58

Express Car

2014-04-10 17:42:51

2010-03-23 08:51:46

Windows 7QQ任務(wù)欄

2012-09-11 16:25:41

Win 8

2011-07-21 09:50:35

Mac OS X Li評(píng)測

2021-02-21 10:43:43

鴻蒙HarmonyOS應(yīng)用開發(fā)

2020-06-19 18:03:23

IBM Cloud P應(yīng)用現(xiàn)代化

2022-11-21 09:34:33

AI模型

2020-09-19 21:15:26

Composition

2022-09-20 11:00:14

Vue3滾動(dòng)組件

2021-07-29 12:05:18

Vue3Api前端

2020-11-06 08:54:43

Vue 3.0函數(shù)代碼

2022-07-18 10:43:12

項(xiàng)目TienChinJava
點(diǎn)贊
收藏

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