File tree Expand file tree Collapse file tree 4 files changed +35
-2
lines changed
Expand file tree Collapse file tree 4 files changed +35
-2
lines changed Original file line number Diff line number Diff line change 33 effect ,
44 reactive ,
55 isRef ,
6+ toRef ,
67 toRefs ,
78 Ref ,
89 isReactive
@@ -168,6 +169,34 @@ describe('reactivity/ref', () => {
168169 expect ( isRef ( { value : 0 } ) ) . toBe ( false )
169170 } )
170171
172+ test ( 'toRef' , ( ) => {
173+ const a = reactive ( {
174+ x : 1
175+ } )
176+ const x = toRef ( a , 'x' )
177+ expect ( isRef ( x ) ) . toBe ( true )
178+ expect ( x . value ) . toBe ( 1 )
179+
180+ // source -> proxy
181+ a . x = 2
182+ expect ( x . value ) . toBe ( 2 )
183+
184+ // proxy -> source
185+ x . value = 3
186+ expect ( a . x ) . toBe ( 3 )
187+
188+ // reactivity
189+ let dummyX
190+ effect ( ( ) => {
191+ dummyX = x . value
192+ } )
193+ expect ( dummyX ) . toBe ( x . value )
194+
195+ // mutating source should trigger effect using the proxy refs
196+ a . x = 4
197+ expect ( dummyX ) . toBe ( 4 )
198+ } )
199+
171200 test ( 'toRefs' , ( ) => {
172201 const a = reactive ( {
173202 x : 1 ,
@@ -224,6 +253,8 @@ describe('reactivity/ref', () => {
224253 }
225254 } ) )
226255
256+ expect ( isRef ( custom ) ) . toBe ( true )
257+
227258 let dummy
228259 effect ( ( ) => {
229260 dummy = custom . value
Original file line number Diff line number Diff line change 33 unref ,
44 shallowRef ,
55 isRef ,
6+ toRef ,
67 toRefs ,
78 customRef ,
89 Ref ,
Original file line number Diff line number Diff line change @@ -103,12 +103,12 @@ export function toRefs<T extends object>(
103103 }
104104 const ret : any = { }
105105 for ( const key in object ) {
106- ret [ key ] = toProxyRef ( object , key )
106+ ret [ key ] = toRef ( object , key )
107107 }
108108 return ret
109109}
110110
111- function toProxyRef < T extends object , K extends keyof T > (
111+ export function toRef < T extends object , K extends keyof T > (
112112 object : T ,
113113 key : K
114114) : Ref < T [ K ] > {
Original file line number Diff line number Diff line change 66 unref ,
77 shallowRef ,
88 isRef ,
9+ toRef ,
910 toRefs ,
1011 customRef ,
1112 reactive ,
You can’t perform that action at this time.
0 commit comments