Bas van Meurs
6cf2377cd4
perf(reactivity): use bitwise dep markers to optimize re-tracking ( #4017 )
2021-07-16 14:30:49 -04:00
Evan You
cc09772d55
chore: remove unncessary property on ComputedRef interface
2021-07-16 14:30:49 -04:00
Evan You
ebaac9a56d
perf(reactivity): avoid triggering re-render if computed value did not change
2021-07-16 14:30:49 -04:00
Anthony Fu
f5617fc3bb
feat(reactivity): new effectScope API ( #2195 )
2021-07-16 14:30:49 -04:00
Evan You
87f69fd0bb
perf(reactivity): improve reactive effect memory usage ( #4001 )
...
Based on #2345 , but with smaller API change
- Use class implementation for `ReactiveEffect`
- Switch internal creation of effects to use the class constructor
- Avoid options object allocation
- Avoid creating bound effect runner function (used in schedulers) when not necessary.
- Consumes ~17% less memory compared to last commit
- Introduces a very minor breaking change: the `scheduler` option passed to `effect` no longer receives the runner function.
2021-07-16 14:30:49 -04:00
Evan You
b2554aefba
refactor: small bundle size / readability optimization
2021-07-16 14:30:49 -04:00
Bas van Meurs
64310405ac
perf(reactivity): ref-specific track/trigger and miscellaneous optimizations ( #3995 )
2021-07-16 14:30:49 -04:00
TheDro
1cfe290352
fix(reactivity): call array subclass methods ( #3624 )
...
fix #2314 , close #2315
2021-07-15 17:17:13 -04:00
Yang Mingshan
08f504c1b7
fix(ref): should not trigger when setting value to same proxy ( #3658 )
2021-07-15 16:28:01 -04:00
Carlos Rodrigues
f6a5f09a3a
types(defineComponent): fix unwrap when returning Ref<T>|undefined
from setup
( #4100 )
2021-07-15 15:58:20 -04:00
Evan You
127ed1b969
fix(types): improve type of unref()
...
fix #3954
2021-07-01 15:20:49 -04:00
Evan You
f8a6b57ddd
refactor(reactivity): improve tree-shaking annotations
2021-06-30 11:39:31 -04:00
zhangenming
960ef1691f
chore(reactivity): remove unnecessary RefImpl _shallow default value ( #3895 )
2021-06-08 09:58:02 -04:00
Evan You
03a7a73148
fix(reactivity): ensure computed always expose value
...
fix #3099
Also changes the original fix for #910 by moving the fix from
reactivity to the scheduler
2021-05-27 20:53:21 -04:00
Lo Leon
90aa835812
fix(types/reactivity): error TS4058 caused by RefSymbol
( #2548 )
2021-05-24 16:36:08 -04:00
Yunfei He
49fd1696c9
chore(types): remove unnecessary type assertion ( #3724 )
2021-05-12 17:47:52 -04:00
HcySunYang
5036c51cb7
fix(reactivity): fix tracking for readonly + reactive Map ( #3604 )
...
fix #3602
2021-05-07 18:49:11 -04:00
liaoliao666
c61e767422
fix(reactivity): should not trigger when setting value to same proxy ( #2904 )
2021-03-29 17:52:57 -04:00
Thorsten Lünborg
22cc4a7659
fix(reactivity): ensure that shallow and normal proxies are tracked seperately ( close #2843 ) ( #2851 )
...
fix #2843
2021-03-26 15:39:56 -04:00
HcySunYang
68de9f408a
fix(reactivity): fix shallow readonly behavior for collections ( #3003 )
...
fix #3007
2021-03-26 15:10:21 -04:00
HcySunYang
2b588cf1bc
fix(types): unwrap refs on public instance data ( #3319 )
...
fix #3315
2021-03-25 17:30:10 -04:00
Evan You
41e02f0fac
fix(reactivity): ensure computed can be wrapped by readonly
...
fix #3376
2021-03-25 11:23:34 -04:00
Cédric Exbrayat
57e1aa815b
chore: fix ownKeys signature ( #3313 )
2021-03-03 11:26:49 -05:00
zhufengzhufeng
9cd988342c
perf(reactivity): only call Set.add if doesn't already have value ( #3307 )
2021-02-25 14:57:35 -05:00
HcySunYang
dd02cf37d5
perf(reactivity): should not track __isVue
( #2940 )
2021-02-03 19:28:07 +01:00
07akioni
4ca4666d58
fix(toRef): ref created from union typed prop can't be used in watch ( #3048 )
2021-02-03 19:12:51 +01:00
Evan You
e315d84936
fix(types): fix ToRefs type on union value types
...
fix #2687
2020-12-02 14:58:03 -05:00
Thorsten Lünborg
6e46a574ed
fix(reactivity): ensure add/set on reactive collections return the proxy ( #2534 )
...
fix #2530
2020-11-27 14:16:00 -05:00
Thorsten Lünborg
34703082fd
fix(reactivity): ensure readonly on plain arrays doesn't track array methods. ( #2506 )
...
fix #2493
2020-11-27 10:24:31 -05:00
Evan You
8e20375372
fix(types): ensure correct type for toRef and toRefs on existing refs
2020-10-27 18:50:34 -04:00
Evan You
118502a4b8
chore: comments [ci skip]
2020-10-23 14:37:09 -04:00
Evan You
0e5a3c47a7
fix(reactivity): track length on for in iteration on Array
...
fix #2427
2020-10-19 17:37:35 -04:00
Lory Lee
6b8cf998c4
chore: add missing space in warning message ( #2266 ) [ci skip]
2020-10-13 16:18:22 -04:00
edison
af1f5d33aa
refactor(reactivity): remove keyIsSymbol
( #2262 )
2020-10-13 16:17:52 -04:00
Yang Mingshan
7cc09ca8a5
fix(reactivity): use resetTracking instead of enableTracking ( #2174 )
2020-10-13 15:32:46 -04:00
Evan You
390589ec6d
fix(reactivity): should not trigger watch on computed ref when value is unchanged
...
fix #2231
2020-10-06 18:16:20 -04:00
HcySunYang
ea1f87eabf
fix(reactivity): should add allowRecurse to the effect ( #2213 )
...
So that the scheduler also respects effect's allowRecurse option.
fix #2200
2020-10-05 16:36:02 -04:00
Nathan Shively-Sanders
d52d139b85
types: fix Typescript 4.1 compile error ( #2219 )
...
close #2218
2020-09-28 12:39:14 -04:00
ᴜɴвʏтᴇ
f316a332b0
fix(reactivity): avoid length mutating array methods causing infinite updates ( #2138 )
...
fix #2137
Co-authored-by: Evan You <yyx990803@gmail.com>
2020-09-18 01:01:36 -04:00
Evan You
3810de7d6b
fix(reactivity): effect shoud only recursively self trigger with explicit options
...
fix #2125
2020-09-16 10:52:31 -04:00
Carlos Rodrigues
4fd468aced
types(runtime-core): refactor defineComponent ( #1883 )
2020-09-15 11:46:11 -04:00
Carlos Rodrigues
d4bf9bcbb4
fix(reactivity): toRef
should not wrap a ref
( #2103 )
2020-09-15 10:29:38 -04:00
Pick
fcf9b2cf19
fix(reactivity): should trigger collection's write-function correctly on non-reactive keys ( #1992 )
2020-09-14 21:31:04 -04:00
Evan You
0124eacc91
refactor(reactivity): refactor iteration key trigger logic + use more robust Map/Set check
2020-09-14 11:26:34 -04:00
Evan You
5f4053967c
fix(reactivity): revert ac81dcf
...
fix #2043
2020-09-04 11:10:26 -04:00
Evan You
691a4b9530
perf(reactivity): no need to proxy has/ownKeys for readonly objects
2020-09-01 20:52:48 -04:00
Pick
97bc30edad
perf(reactivity): avoid triggering Map.has twice on non-reactive keys ( #1972 )
2020-08-26 11:41:18 -04:00
xxgjzftd
d5c4f6ed4d
perf(reactivity): add existing index or non-integer prop on Array should not trigger length dependency ( #1969 )
2020-08-26 11:28:58 -04:00
Evan You
016ba116a8
fix(reactivity): fix iOS 12 JSON.stringify error on reactive objects
...
- Use WeakMap for raw -> reactive/readonly storage. This is slightly
more expensive than using a field on the taget object but avoids
polluting the original.
- also fix Collection.forEach callback value
fix #1916
2020-08-24 15:34:04 -04:00
Robbin Baauw
07919e0065
perf(reactivity): improve ref performance by using class-based implementation ( #1900 )
2020-08-21 13:47:41 -04:00
ᴜɴвʏтᴇ
3c05f8bbd6
fix(reactivity): unwrap non-index accessed refs on reactive arrays ( #1859 )
...
close #1846
2020-08-21 13:36:41 -04:00
Carlos Rodrigues
c86e7ad11b
types(reactivity): improve typings for shallowRef
( #1780 )
2020-08-18 23:34:29 -04:00
Jordan Pittman
4172fdb90c
feat(reactivity): return array when calling toRefs
on array ( #1768 )
...
close #1764
2020-08-18 12:11:13 -04:00
ᴜɴвʏтᴇ
d005b578b1
fix(reactivity): accept subtypes of collections ( #1864 )
2020-08-17 12:17:46 -04:00
Pick
44448fdd22
types(reactivity): add dts for proxyRefs & improve typings ( #1786 )
2020-08-14 17:37:36 -04:00
Evan You
ac81dcf0cc
fix(reactivity): effect should still check sync self-trigger
2020-08-13 17:45:21 -04:00
Evan You
50adc014f5
refactor(reactivity): readonly collections should not track
2020-08-06 12:10:03 -04:00
Evan You
ed4381020f
fix(reactivity): readonly+reactive collection should also expose readonly+reactive values
...
fix #1772
2020-08-06 11:18:16 -04:00
wujieZ
2787c34cd4
fix(reactivity): use isExtensible instead of isFrozen ( #1753 )
...
close #1784
2020-08-05 11:53:50 -04:00
Evan You
aa06b1034d
feat(reactivity): proxyRefs
method and ShallowUnwrapRefs
type ( #1682 )
...
* feat(reactivity): `proxyRefs` method and `ShallowUnwrapRefs` type
BREAKING CHANGE: template auto ref unwrapping are now applied shallowly,
i.e. only at the root level. See https://github.com/vuejs/vue-next/pull/1682 for
more details.
2020-07-28 16:30:56 -04:00
Evan You
730e39eb76
refactor: remove unnecessary conditions and test case
2020-07-28 12:26:14 -04:00
Evan You
b7ef38b773
fix(reactivity): fix ref mutation debugger event values
2020-07-28 12:01:34 -04:00
Evan You
7edfdf7e23
fix(reactivity): avoid tracking internal symbols in has trap
...
fix #1683
2020-07-22 21:23:32 -04:00
Zardddddd60
3e412c10e0
refactor(reactive): reduce code size by assigning to a local variable ( #1634 )
2020-07-21 10:33:09 -04:00
Carlos Rodrigues
dabdc5e115
feat(computed): add readonly flag if no setter is provided ( #1654 )
2020-07-20 17:35:31 -04:00
Pick
527c2c8bbb
feat(types): expose DeepReadonly type ( #1606 )
2020-07-17 09:28:50 -04:00
Zardddddd60
ecf872fc95
refactor(reactive): remove unnecessary args handling in reactiveEffect ( #1593 )
2020-07-15 23:19:15 -04:00
Evan You
4535b1bde8
chore: remove outdated options
2020-07-15 17:05:00 -04:00
Pick
b772bba558
feat(types/reactivity): use DeepReadonly
type for readonly
return type ( #1462 )
...
close #1452
2020-07-15 09:27:21 -04:00
Felix Rilling
829b35e426
chore: typo fixes ( #1546 )
...
* chore: fix typos in comments/JSDoc.
* chore: fix typo in internal function name.
* chore: fix typos in test comments/descriptions/variable names.
2020-07-08 12:32:42 +02:00
Pick
4f6460a71f
chore(reactivity): remove unused comment ( #1485 ) [ci skip]
2020-07-06 15:57:54 -04:00
Pick
5c490f1c45
refactor(computed): deprecated computedRunners ( #1458 )
2020-07-01 15:39:13 -04:00
Pick
c69ca88c04
refactor(types): simplify UnwrapRefSimple ( #1466 )
2020-06-30 12:02:21 -04:00
Evan You
82b28a5ecb
fix(types): should unwrap array -> object -> ref
2020-06-29 12:26:28 -04:00
edison
178e89305d
chore(reactivity): use consistent naming for ReactiveFlags enum ( #1428 )
2020-06-26 09:32:09 -04:00
Pick
f54be6a462
refactor(types): simplify UnwrapRef + specify iterable method return type ( #1444 )
2020-06-25 12:04:14 -04:00
underfin
c43a6e61a0
perf(reactivity): should not track __v_isRef
( #1392 )
2020-06-25 11:40:49 -04:00
Pick
8899a90fc4
refactor(types): simplified UnwrapRef ( #1390 )
2020-06-17 16:06:55 -04:00
Evan You
d863ce721f
refactor: improve base getter readability
2020-06-12 09:25:40 -04:00
Yang Mingshan
80e1693e1f
fix(reactivity): replaced ref in reactive object should be tracked ( #1058 )
2020-06-12 09:20:43 -04:00
蜗牛老湿
f3eac11058
chore(reactivity): use ReactiveFlags instead of __v_ properties ( #1313 )
2020-06-11 17:32:44 -04:00
Evan You
10bb34bb86
fix(reactivity): fix toRaw for objects prototype inherting reactive
...
fix #1246
2020-06-11 15:12:57 -04:00
Evan You
80c868aefe
workflow: setup eslint for prohibited syntax and globals
...
fix #1285
2020-06-10 16:54:23 -04:00
Carlos Rodrigues
c97d1bae56
fix(reactivity): shallowReactive collection to not-readonly ( #1212 )
2020-06-09 17:20:30 -04:00
doly mood
d3c436ae2e
feat(types): mixins/extends support in TypeScript ( #626 )
2020-06-09 10:37:00 -04:00
Carlos Rodrigues
488e2bcfef
fix(reactivity): shallowReactive for collections ( #1204 )
...
close #1202
2020-05-18 11:17:37 -04:00
zhangenming
6574a5bf29
chore: merge imports ( #1182 )
2020-05-18 10:12:14 -04:00
龙腾道
e08f6f0ede
fix(reactivity): use correct thisArg for collection method callbacks ( #1132 )
2020-05-06 13:41:34 -04:00
龙腾道
037fa07113
fix(reactivity): fix __proto__ access on proxy objects ( #1133 )
2020-05-06 09:08:44 -04:00
Evan You
c6217b4d46
refactor(types): use pure type symbol
2020-05-04 09:38:32 -04:00
Evan You
bc1f097e29
fix(types/reactivity): fix ref type inference on nested reactive properties with .value
...
fix #1111
2020-05-04 08:51:17 -04:00
Evan You
f40f3a0e95
fix(reactivity): avoid polluting Object prototype
2020-05-04 08:51:17 -04:00
Jackliu
42a99d28ae
chore: typo ( #1113 )
2020-05-04 10:30:24 +02:00
Evan You
6be2b73f8a
fix(reactivity): check own property for existing proxy of target
...
fix #1107
2020-05-03 15:36:19 -04:00
Evan You
0c48558f4c
chore: remove commented stale code [ci skip]
2020-05-02 17:08:54 -04:00
Evan You
d901b6bea8
refactor(reactivity): use more efficient reactive checks
...
WeakSets and WeakMaps shows degrading performance as the amount of
observed objects increases. Using hidden keys result in better
performance especially when repeatedly creating large amounts of
reactive proxies.
This also makes it possible to more efficiently declare non-reactive
objects in userland.
2020-05-02 16:58:17 -04:00
Evan You
b40fcbc4c6
fix(types): augment ref unwrap bail types in appropriate packages
...
Packages can now augment the ref unwrap bail types in their own `d.ts`.
Also updated the build script to auto concat any files in a package's
`types` directory to the final generated `d.ts`.
- `@vue/reactivity` should no longer require `libs: ["DOM"]` in tsconfig
- Properly bail on `VNode` and `ComponentPublicInstance` in runtime-core
2020-05-01 16:14:30 -04:00
Evan You
352c369704
chore: remove stale _isVue checks
2020-04-30 14:45:25 -04:00
Carlos Rodrigues
28b4c317b4
feat(types): expose ToRefs
type ( #1037 )
2020-04-24 13:10:16 -04:00
susiwen8
ad2b940c17
chore: remove unnecessary export ( #1044 ) [ci skip]
2020-04-24 13:02:44 -04:00