fix(reactivity): trigger the ref that is created by toRef from a reactive array
fix #12427
@vue/compiler-core
pnpm add https://pkg.pr.new/@vue/compiler-core@12431
@vue/compiler-sfc
pnpm add https://pkg.pr.new/@vue/compiler-sfc@12431
@vue/compiler-dom
pnpm add https://pkg.pr.new/@vue/compiler-dom@12431
@vue/compiler-ssr
pnpm add https://pkg.pr.new/@vue/compiler-ssr@12431
@vue/runtime-core
pnpm add https://pkg.pr.new/@vue/runtime-core@12431
@vue/reactivity
pnpm add https://pkg.pr.new/@vue/reactivity@12431
@vue/runtime-dom
pnpm add https://pkg.pr.new/@vue/runtime-dom@12431
@vue/server-renderer
pnpm add https://pkg.pr.new/@vue/server-renderer@12431
@vue/shared
pnpm add https://pkg.pr.new/@vue/shared@12431
vue
pnpm add https://pkg.pr.new/vue@12431
@vue/compat
pnpm add https://pkg.pr.new/@vue/compat@12431
commit: eccd16e
Size Report
Bundles
| File | Size | Gzip | Brotli |
|---|---|---|---|
| runtime-dom.global.prod.js | 100 kB (+43 B) | 38 kB (+20 B) | 34.2 kB (-26 B) |
| vue.global.prod.js | 158 kB (+43 B) | 57.8 kB (+21 B) | 51.4 kB (-4 B) |
Usages
| Name | Size | Gzip | Brotli |
|---|---|---|---|
| createApp (CAPI only) | 47.2 kB | 18.3 kB | 16.8 kB |
| createApp | 55.2 kB | 21.3 kB | 19.5 kB |
| createSSRApp | 59.3 kB | 23.1 kB | 21 kB |
| defineCustomElement | 60.1 kB | 22.9 kB | 20.8 kB |
| overall | 69.1 kB | 26.5 kB | 24.1 kB |
According to the reproduction in #12427, the issue likely lies within toRef. If source is an array and the key is a number, the key should be converted to a string. However, modifying getDepFromRective broadens the impact scope.
Additionally, getDepFromReactive is not a public API, and the test case should ideally use public APIs.
According to the reproduction in #12427, the issue likely lies within
toRef. Ifsourceis an array and thekeyis a number, thekeyshould be converted to a string. However, modifyinggetDepFromRectivebroadens the impact scope. Additionally,getDepFromReactiveis not a public API, and the test case should ideally use public APIs.
But for getDepFromReactive, it should indeed exhibit such behavior, as it needs to handle this case for all reactive arrays.