isReactive
} from '../src/index'
import { computed } from '@vue/runtime-dom'
-import { shallowRef, unref, customRef } from '../src/ref'
+import { shallowRef, unref, customRef, triggerRef } from '../src/ref'
describe('reactivity/ref', () => {
it('should hold a value', () => {
expect(dummy).toBe(1) // should not trigger yet
// force trigger
- sref.value = sref.value
+ triggerRef(sref)
expect(dummy).toBe(2)
})
return value
},
set value(newVal) {
- if (shallow || hasChanged(toRaw(newVal), rawValue)) {
+ if (hasChanged(toRaw(newVal), rawValue)) {
rawValue = newVal
value = shallow ? newVal : convert(newVal)
trigger(
return r
}
+export function triggerRef(ref: Ref) {
+ trigger(
+ ref,
+ TriggerOpTypes.SET,
+ 'value',
+ __DEV__ ? { newValue: ref.value } : void 0
+ )
+}
+
export function unref<T>(ref: T): T extends Ref<infer V> ? V : T {
return isRef(ref) ? (ref.value as any) : ref
}