BlogDocs

fix(reactivity): fix shallowReactive map "unwraps" the nested refs(#8502)

Closed
Merging
Alfred-Skyblue:fix-shallowReactive
into
main
-42%
IMPROVEMENTS
0
REGRESSIONS
3
UNTOUCHED
50
NEW
0
DROPPED
0
IGNORED
0

Benchmarks

Failing

write reactive map propertyRegression
packages/reactivity/__tests__/reactiveMap.bench.ts::write reactive map property
-15%
85.8 µs
100.8 µs
write reactive map, don't read 1000 computeds (never invoked)Regression
packages/reactivity/__tests__/reactiveMap.bench.ts::write reactive map, don't read 1000 computeds (never invoked)
-42%
76.7 µs
133 µs
write reactive map, don't read computed (never invoked)Regression
packages/reactivity/__tests__/reactiveMap.bench.ts::write reactive map, don't read computed (never invoked)
-11%
62.2 µs
70.1 µs

Passing

1000 refs, 1 computed
packages/reactivity/__tests__/computed.bench.ts::computed::1000 refs, 1 computed
0%
14.6 ms
14.7 ms
create computed
packages/reactivity/__tests__/computed.bench.ts::computed::create computed
0%
37.7 µs
37.8 µs
write independent ref dep
packages/reactivity/__tests__/computed.bench.ts::computed::write independent ref dep
0%
55.6 µs
55.7 µs
write ref, don't read 1000 computeds (invoked)
packages/reactivity/__tests__/computed.bench.ts::computed::write ref, don't read 1000 computeds (invoked)
0%
3.4 ms
3.4 ms
write ref, don't read 1000 computeds (never invoked)
packages/reactivity/__tests__/computed.bench.ts::computed::write ref, don't read 1000 computeds (never invoked)
0%
62.3 µs
62.4 µs
write ref, don't read computed (invoked)
packages/reactivity/__tests__/computed.bench.ts::computed::write ref, don't read computed (invoked)
0%
121.7 µs
121.8 µs
write ref, don't read computed (never invoked)
packages/reactivity/__tests__/computed.bench.ts::computed::write ref, don't read computed (never invoked)
0%
54.2 µs
54.3 µs
write ref, read 1000 computeds
packages/reactivity/__tests__/computed.bench.ts::computed::write ref, read 1000 computeds
0%
29.7 ms
29.7 ms
write ref, read computed
packages/reactivity/__tests__/computed.bench.ts::computed::write ref, read computed
0%
285.3 µs
285.3 µs
reduce *raw* array, copied, 10 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *raw* array, copied, 10 elements
0%
379 µs
380.5 µs
reduce *raw* array, copied, 100 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *raw* array, copied, 100 elements
0%
248.1 µs
248.2 µs
reduce *raw* array, copied, 1000 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *raw* array, copied, 1000 elements
0%
952.8 µs
952.9 µs
reduce *raw* array, manually triggered, 10 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *raw* array, manually triggered, 10 elements
0%
1.2 ms
1.2 ms
reduce *raw* array, manually triggered, 100 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *raw* array, manually triggered, 100 elements
0%
289.2 µs
289.1 µs
reduce *raw* array, manually triggered, 1000 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *raw* array, manually triggered, 1000 elements
0%
1.1 ms
1.1 ms
reduce *reactive* array, 10 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *reactive* array, 10 elements
0%
3.5 ms
3.5 ms
reduce *reactive* array, 10 elements, only change first value
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *reactive* array, 10 elements, only change first value
0%
657 µs
658.1 µs
reduce *reactive* array, 100 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *reactive* array, 100 elements
-1%
11.7 ms
11.8 ms
reduce *reactive* array, 100 elements, only change first value
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *reactive* array, 100 elements, only change first value
0%
3.8 ms
3.8 ms
reduce *reactive* array, 1000 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *reactive* array, 1000 elements
-1%
122.8 ms
124.1 ms
reduce *reactive* array, 1000 elements, only change first value
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *reactive* array, 1000 elements, only change first value
0%
35.4 ms
35.4 ms
reduce *readonly* array, 10 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *readonly* array, 10 elements
0%
1.1 ms
1.1 ms
reduce *readonly* array, 100 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *readonly* array, 100 elements
0%
6.7 ms
6.7 ms
reduce *readonly* array, 1000 elements
packages/reactivity/__tests__/reactiveArray.bench.ts::reduce *readonly* array, 1000 elements
0%
64 ms
64 ms
1000 reactive maps, 1 computed
packages/reactivity/__tests__/reactiveMap.bench.ts::1000 reactive maps, 1 computed
0%
31.7 ms
31.8 ms
create reactive map
packages/reactivity/__tests__/reactiveMap.bench.ts::create reactive map
0%
57.6 µs
57.5 µs
write reactive map (10'000 items), read computed
packages/reactivity/__tests__/reactiveMap.bench.ts::write reactive map (10'000 items), read computed
0%
40.4 ms
40.4 ms
write reactive map, don't read 1000 computeds (invoked)
packages/reactivity/__tests__/reactiveMap.bench.ts::write reactive map, don't read 1000 computeds (invoked)
0%
4.9 ms
4.9 ms
write reactive map, don't read computed (invoked)
packages/reactivity/__tests__/reactiveMap.bench.ts::write reactive map, don't read computed (invoked)
-4%
178.3 µs
185.5 µs
write reactive map, read 1000 computeds
packages/reactivity/__tests__/reactiveMap.bench.ts::write reactive map, read 1000 computeds
0%
48.6 ms
48.6 ms
write reactive map, read computed
packages/reactivity/__tests__/reactiveMap.bench.ts::write reactive map, read computed
-2%
303.2 µs
310.5 µs
1000 reactive objs, 1 computed
packages/reactivity/__tests__/reactiveObject.bench.ts::1000 reactive objs, 1 computed
0%
24.1 ms
24.1 ms
create reactive obj
packages/reactivity/__tests__/reactiveObject.bench.ts::create reactive obj
0%
50 µs
50 µs
write reactive obj property
packages/reactivity/__tests__/reactiveObject.bench.ts::write reactive obj property
0%
93.6 µs
93.7 µs
write reactive obj, don't read 1000 computeds (invoked)
packages/reactivity/__tests__/reactiveObject.bench.ts::write reactive obj, don't read 1000 computeds (invoked)
0%
3.4 ms
3.4 ms
write reactive obj, don't read 1000 computeds (never invoked)
packages/reactivity/__tests__/reactiveObject.bench.ts::write reactive obj, don't read 1000 computeds (never invoked)
0%
123 µs
123.2 µs
write reactive obj, don't read computed (invoked)
packages/reactivity/__tests__/reactiveObject.bench.ts::write reactive obj, don't read computed (invoked)
0%
189.1 µs
189.6 µs
write reactive obj, don't read computed (never invoked)
packages/reactivity/__tests__/reactiveObject.bench.ts::write reactive obj, don't read computed (never invoked)
0%
92.6 µs
92.7 µs
write reactive obj, read 1000 computeds
packages/reactivity/__tests__/reactiveObject.bench.ts::write reactive obj, read 1000 computeds
0%
68.6 ms
68.6 ms
write reactive obj, read computed
packages/reactivity/__tests__/reactiveObject.bench.ts::write reactive obj, read computed
0%
297.8 µs
297.9 µs
create ref
packages/reactivity/__tests__/ref.bench.ts::ref::create ref
0%
41.6 µs
41.6 µs
read ref
packages/reactivity/__tests__/ref.bench.ts::ref::read ref
0%
22 µs
22 µs
write ref
packages/reactivity/__tests__/ref.bench.ts::ref::write ref
0%
89.1 µs
88.7 µs
write/read ref
packages/reactivity/__tests__/ref.bench.ts::ref::write/read ref
0%
89.3 µs
89.3 µs
create watchEffect
packages/runtime-core/__tests__/apiWatch.bench.ts::create watchEffect
0%
107.6 µs
107.3 µs
create watcher
packages/runtime-core/__tests__/apiWatch.bench.ts::create watcher
0%
226.6 µs
226.7 µs
update ref to trigger watchEffect (executed)
packages/runtime-core/__tests__/apiWatch.bench.ts::update ref to trigger watchEffect (executed)
0%
233.3 µs
233.2 µs
update ref to trigger watchEffect (scheduled but not executed)
packages/runtime-core/__tests__/apiWatch.bench.ts::update ref to trigger watchEffect (scheduled but not executed)
+1%
1.2 ms
1.2 ms
update ref to trigger watcher (executed)
packages/runtime-core/__tests__/apiWatch.bench.ts::update ref to trigger watcher (executed)
+1%
1.6 ms
1.6 ms
update ref to trigger watcher (scheduled but not executed)
packages/runtime-core/__tests__/apiWatch.bench.ts::update ref to trigger watcher (scheduled but not executed)
0%
297.3 µs
297.2 µs

Commits

Click on a commit to change the comparison range
chore(deps): update test (#9859) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
base
9fa8241
4 months ago by renovate[bot]
-42%
Merge branch 'main' into fix-shallowReactive
baaf820
4 months ago by Alfred-Skyblue
ResourcesHomePricingDocsBlogGitHub
Copyright © 2024 CodSpeed Technology SAS. All rights reserved.