Skip to content

Commit a51f935

Browse files
committed
refactor: remove isTracking() method
1 parent bb43704 commit a51f935

File tree

2 files changed

+25
-28
lines changed

2 files changed

+25
-28
lines changed

packages/reactivity/src/effect.ts

+16-21
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export type DebuggerEventExtraInfo = {
4545
oldTarget?: Map<any, any> | Set<any>
4646
}
4747

48-
let activeEffect: ReactiveEffect | undefined
48+
export let activeEffect: ReactiveEffect | undefined
4949

5050
export const ITERATE_KEY = Symbol(__DEV__ ? 'iterate' : '')
5151
export const MAP_KEY_ITERATE_KEY = Symbol(__DEV__ ? 'Map key iterate' : '')
@@ -181,7 +181,7 @@ export function stop(runner: ReactiveEffectRunner) {
181181
runner.effect.stop()
182182
}
183183

184-
let shouldTrack = true
184+
export let shouldTrack = true
185185
const trackStack: boolean[] = []
186186

187187
export function pauseTracking() {
@@ -200,27 +200,22 @@ export function resetTracking() {
200200
}
201201

202202
export function track(target: object, type: TrackOpTypes, key: unknown) {
203-
if (!isTracking()) {
204-
return
205-
}
206-
let depsMap = targetMap.get(target)
207-
if (!depsMap) {
208-
targetMap.set(target, (depsMap = new Map()))
209-
}
210-
let dep = depsMap.get(key)
211-
if (!dep) {
212-
depsMap.set(key, (dep = createDep()))
213-
}
214-
215-
const eventInfo = __DEV__
216-
? { effect: activeEffect, target, type, key }
217-
: undefined
203+
if (shouldTrack && activeEffect) {
204+
let depsMap = targetMap.get(target)
205+
if (!depsMap) {
206+
targetMap.set(target, (depsMap = new Map()))
207+
}
208+
let dep = depsMap.get(key)
209+
if (!dep) {
210+
depsMap.set(key, (dep = createDep()))
211+
}
218212

219-
trackEffects(dep, eventInfo)
220-
}
213+
const eventInfo = __DEV__
214+
? { effect: activeEffect, target, type, key }
215+
: undefined
221216

222-
export function isTracking() {
223-
return shouldTrack && !!activeEffect
217+
trackEffects(dep, eventInfo)
218+
}
224219
}
225220

226221
export function trackEffects(

packages/reactivity/src/ref.ts

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import { isTracking, trackEffects, triggerEffects } from './effect'
1+
import {
2+
activeEffect,
3+
shouldTrack,
4+
trackEffects,
5+
triggerEffects
6+
} from './effect'
27
import { TrackOpTypes, TriggerOpTypes } from './operations'
38
import { isArray, hasChanged, IfAny } from '@vue/shared'
49
import { isProxy, toRaw, isReactive, toReactive } from './reactive'
@@ -24,19 +29,16 @@ type RefBase<T> = {
2429
}
2530

2631
export function trackRefValue(ref: RefBase<any>) {
27-
if (isTracking()) {
32+
if (shouldTrack && activeEffect) {
2833
ref = toRaw(ref)
29-
if (!ref.dep) {
30-
ref.dep = createDep()
31-
}
3234
if (__DEV__) {
33-
trackEffects(ref.dep, {
35+
trackEffects(ref.dep || (ref.dep = createDep()), {
3436
target: ref,
3537
type: TrackOpTypes.GET,
3638
key: 'value'
3739
})
3840
} else {
39-
trackEffects(ref.dep)
41+
trackEffects(ref.dep || (ref.dep = createDep()))
4042
}
4143
}
4244
}

0 commit comments

Comments
 (0)