refactor: remove isTracking() method

This commit is contained in:
Evan You 2022-01-30 18:52:23 +08:00
parent bb43704b64
commit a51f935b72
2 changed files with 25 additions and 28 deletions

View File

@ -45,7 +45,7 @@ export type DebuggerEventExtraInfo = {
oldTarget?: Map<any, any> | Set<any>
}
let activeEffect: ReactiveEffect | undefined
export let activeEffect: ReactiveEffect | undefined
export const ITERATE_KEY = Symbol(__DEV__ ? 'iterate' : '')
export const MAP_KEY_ITERATE_KEY = Symbol(__DEV__ ? 'Map key iterate' : '')
@ -181,7 +181,7 @@ export function stop(runner: ReactiveEffectRunner) {
runner.effect.stop()
}
let shouldTrack = true
export let shouldTrack = true
const trackStack: boolean[] = []
export function pauseTracking() {
@ -200,9 +200,7 @@ export function resetTracking() {
}
export function track(target: object, type: TrackOpTypes, key: unknown) {
if (!isTracking()) {
return
}
if (shouldTrack && activeEffect) {
let depsMap = targetMap.get(target)
if (!depsMap) {
targetMap.set(target, (depsMap = new Map()))
@ -218,9 +216,6 @@ export function track(target: object, type: TrackOpTypes, key: unknown) {
trackEffects(dep, eventInfo)
}
export function isTracking() {
return shouldTrack && !!activeEffect
}
export function trackEffects(

View File

@ -1,4 +1,9 @@
import { isTracking, trackEffects, triggerEffects } from './effect'
import {
activeEffect,
shouldTrack,
trackEffects,
triggerEffects
} from './effect'
import { TrackOpTypes, TriggerOpTypes } from './operations'
import { isArray, hasChanged, IfAny } from '@vue/shared'
import { isProxy, toRaw, isReactive, toReactive } from './reactive'
@ -24,19 +29,16 @@ type RefBase<T> = {
}
export function trackRefValue(ref: RefBase<any>) {
if (isTracking()) {
if (shouldTrack && activeEffect) {
ref = toRaw(ref)
if (!ref.dep) {
ref.dep = createDep()
}
if (__DEV__) {
trackEffects(ref.dep, {
trackEffects(ref.dep || (ref.dep = createDep()), {
target: ref,
type: TrackOpTypes.GET,
key: 'value'
})
} else {
trackEffects(ref.dep)
trackEffects(ref.dep || (ref.dep = createDep()))
}
}
}