diff --git a/packages/reactivity/src/computed.ts b/packages/reactivity/src/computed.ts index a4b74172fcf..4b52234c4f4 100644 --- a/packages/reactivity/src/computed.ts +++ b/packages/reactivity/src/computed.ts @@ -40,13 +40,10 @@ export class ComputedRefImpl { public readonly __v_isRef = true public readonly [ReactiveFlags.IS_READONLY]: boolean = false - public _cacheable: boolean - constructor( getter: ComputedGetter, private readonly _setter: ComputedSetter, isReadonly: boolean, - isSSR: boolean, ) { this.effect = new ReactiveEffect( () => getter(this._value), @@ -58,8 +55,6 @@ export class ComputedRefImpl { : DirtyLevels.MaybeDirty, ), ) - this.effect.computed = this - this.effect.active = this._cacheable = !isSSR this[ReactiveFlags.IS_READONLY] = isReadonly } @@ -67,7 +62,7 @@ export class ComputedRefImpl { // the computed ref may get wrapped by other proxies e.g. readonly() #3376 const self = toRaw(this) if ( - (!self._cacheable || self.effect.dirty) && + self.effect.dirty && hasChanged(self._value, (self._value = self.effect.run()!)) ) { triggerRefValue(self, DirtyLevels.Dirty) @@ -139,7 +134,6 @@ export function computed( export function computed( getterOrOptions: ComputedGetter | WritableComputedOptions, debugOptions?: DebuggerOptions, - isSSR = false, ) { let getter: ComputedGetter let setter: ComputedSetter @@ -157,9 +151,9 @@ export function computed( setter = getterOrOptions.set } - const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR) + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter) - if (__DEV__ && debugOptions && !isSSR) { + if (__DEV__ && debugOptions) { cRef.effect.onTrack = debugOptions.onTrack cRef.effect.onTrigger = debugOptions.onTrigger } diff --git a/packages/reactivity/src/effect.ts b/packages/reactivity/src/effect.ts index ca90544c0de..d32ef3e2472 100644 --- a/packages/reactivity/src/effect.ts +++ b/packages/reactivity/src/effect.ts @@ -29,11 +29,6 @@ export class ReactiveEffect { active = true deps: Dep[] = [] - /** - * Can be attached after creation - * @internal - */ - computed?: ComputedRefImpl /** * @internal */ diff --git a/packages/runtime-core/src/apiComputed.ts b/packages/runtime-core/src/apiComputed.ts deleted file mode 100644 index 97db0da453c..00000000000 --- a/packages/runtime-core/src/apiComputed.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { computed as _computed } from '@vue/reactivity' -import { isInSSRComponentSetup } from './component' - -export const computed: typeof _computed = ( - getterOrOptions: any, - debugOptions?: any, -) => { - // @ts-expect-error - return _computed(getterOrOptions, debugOptions, isInSSRComponentSetup) -} diff --git a/packages/runtime-core/src/componentOptions.ts b/packages/runtime-core/src/componentOptions.ts index 65b952b0b51..fc5ef56160f 100644 --- a/packages/runtime-core/src/componentOptions.ts +++ b/packages/runtime-core/src/componentOptions.ts @@ -18,8 +18,7 @@ import { isPromise, isString, } from '@vue/shared' -import { type Ref, isRef } from '@vue/reactivity' -import { computed } from './apiComputed' +import { type Ref, computed, isRef } from '@vue/reactivity' import { type WatchCallback, type WatchOptions, diff --git a/packages/runtime-core/src/index.ts b/packages/runtime-core/src/index.ts index 7fbe58446f7..995f12297c9 100644 --- a/packages/runtime-core/src/index.ts +++ b/packages/runtime-core/src/index.ts @@ -3,6 +3,7 @@ export const version = __VERSION__ export { // core + computed, reactive, ref, readonly, @@ -35,7 +36,6 @@ export { getCurrentScope, onScopeDispose, } from '@vue/reactivity' -export { computed } from './apiComputed' export { watch, watchEffect, diff --git a/packages/server-renderer/src/render.ts b/packages/server-renderer/src/render.ts index 3029df6e540..0e6310f42a0 100644 --- a/packages/server-renderer/src/render.ts +++ b/packages/server-renderer/src/render.ts @@ -143,15 +143,6 @@ function renderComponentSubTree( comp.ssrRender = ssrCompile(comp.template, instance) } - // perf: enable caching of computed getters during render - // since there cannot be state mutations during render. - for (const e of instance.scope.effects) { - if (e.computed) { - e.computed._dirty = true - e.computed._cacheable = true - } - } - const ssrRender = instance.ssrRender || comp.ssrRender if (ssrRender) { // optimized