偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Vue3 新玩法!我能操控計(jì)算屬性 Computed!

開(kāi)發(fā) 前端
需求是這樣的,我有一個(gè)變量 sum,是通過(guò)computed去計(jì)算的,且 sum 依賴(lài)的變量有的是響應(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,是通過(guò)computed去計(jì)算的,且 sum 依賴(lài)的變量有的是響應(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,顯式聲明對(duì)其依賴(lài)追蹤和更新觸發(fā)的控制方式。

類(lèi)型

圖片圖片

詳細(xì)信息

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

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

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

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

圖片圖片

在組件中使用:

圖片圖片

可控的 computed

圖片圖片

再回到一開(kāi)始的話(huà)題,我遇到的問(wèn)題是:當(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è)方法讓用戶(hù)手動(dòng)去調(diào)用觸發(fā)更新

期望使用方式是這樣的:

圖片圖片

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

圖片 圖片

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

2023-12-11 07:34:37

Computed計(jì)算屬性Vue3

2022-07-14 08:22:48

Computedvue3

2021-12-08 09:09:33

Vue 3 Computed Vue2

2022-06-26 00:00:02

Vue3響應(yīng)式系統(tǒng)

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2022-04-11 08:03:30

Vue.jscomputed計(jì)算屬性

2024-09-05 08:50:11

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用

2023-11-28 09:03:59

Vue.jsJavaScript

2021-12-14 21:43:13

Vue3函數(shù)computed

2020-09-19 21:15:26

Composition

2021-05-12 10:25:29

開(kāi)發(fā)技能代碼

2025-06-12 09:18:22

2025-07-28 06:42:45

2025-10-17 07:10:00

前端開(kāi)發(fā)Vue

2021-12-02 05:50:35

Vue3 插件Vue應(yīng)用

2024-08-23 08:45:04

響應(yīng)式Vue3API

2021-05-12 10:25:53

組件驗(yàn)證漏洞

2025-01-06 09:14:54

HOCVue3render

2021-05-26 10:40:28

Vue3TypeScript前端
點(diǎn)贊
收藏

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