constructor(
getter: ComputedGetter<T>,
private readonly _setter: ComputedSetter<T>,
- isReadonly: boolean
+ isReadonly: boolean,
+ isSSR: boolean
) {
this.effect = new ReactiveEffect(getter, () => {
if (!this._dirty) {
triggerRefValue(this)
}
})
+ this.effect.active = !isSSR
this[ReactiveFlags.IS_READONLY] = isReadonly
}
): WritableComputedRef<T>
export function computed<T>(
getterOrOptions: ComputedGetter<T> | WritableComputedOptions<T>,
- debugOptions?: DebuggerOptions
+ debugOptions?: DebuggerOptions,
+ isSSR = false
) {
let getter: ComputedGetter<T>
let setter: ComputedSetter<T>
setter = getterOrOptions.set
}
- const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter)
+ const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR)
- if (__DEV__ && debugOptions) {
+ if (__DEV__ && debugOptions && !isSSR) {
cRef.effect.onTrack = debugOptions.onTrack
cRef.effect.onTrigger = debugOptions.onTrigger
}
--- /dev/null
+import { computed as _computed } from '@vue/reactivity'
+import { isInSSRComponentSetup } from './component'
+
+export const computed = ((getterOrOptions: any, debugOptions?: any) => {
+ // @ts-ignore
+ return _computed(getterOrOptions, debugOptions, isInSSRComponentSetup)
+}) as typeof _computed