Evan You
d9de6caecd
refactor: move toNumber call out of loop
2022-10-26 15:17:25 +08:00
bcq028
e6224f4256
fix(reactivity): enable trigger when use str to set length of arr ( #6810 )
...
Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>
2022-10-21 09:25:06 +02:00
Evan You
a71f9ac41a
fix(effectScope): calling off() of a detached scope should not break currentScope
2022-10-14 10:53:23 +08:00
Evan You
a95554d35c
fix(reactivity): fix shallow/readonly edge cases
2022-07-22 11:16:06 +08:00
Carlos Rodrigues
17c50ce18d
build(deps-dev): bump typescript to 4.7.4 ( #6215 )
2022-07-06 04:27:30 -04:00
Marcos Dantas
cd92654510
chore: comments ( #5332 ) [ci skip]
2022-05-12 20:23:28 -04:00
descire
b87dc06193
fix(reactivity): ios10.x compatibility ( #4900 )
2022-05-10 04:10:40 -04:00
那里好脏不可以
6042ab0f2f
chore: type [ci skip]
2022-05-09 22:51:51 -04:00
Evan You
30c33af839
chore: use explicit type import to avoid Rollup warning
2022-05-10 10:05:24 +08:00
zhangenming
b9484543db
refactor(reactivity): make some expression simpler ( #5131 )
2022-05-06 06:42:22 -04:00
Carlos Rodrigues
32e53bfd47
fix(types): keep the original type when unwrapping `markRaw` ( #3791 )
2022-05-06 05:07:49 -04:00
Evan You
82bdf86254
fix(reactivity): ensure computed is invalidated before other effects
...
fix #5720
2022-04-15 16:43:17 +08:00
宋铄运 (Alan Song)
c6eb3cccce
build: improve treeshakeability ( #5682 )
2022-04-13 05:39:02 -04:00
Code_xxmyyds
711c826c68
chore(reactivity): use warn ( #5548 )
2022-04-13 05:21:38 -04:00
Evan You
154233abdb
fix(reactivity): fix ref tracking of self-stopping effects
...
close #5707
2022-04-13 17:00:31 +08:00
Evan You
ea6fc845f2
chore: trim non-public properties on EffectScope type
2022-04-12 15:57:07 +08:00
Wei
0a301d4dab
fix(reactivity): fix currentScope loss when running detached effect scope ( #5575 )
2022-04-12 03:51:05 -04:00
Evan You
7efb9dba30
refactor: remove use of Object.assign
...
TS already transpiles spread to Object.assign with target:es2016
2022-04-12 15:22:11 +08:00
Evan You
a51f935b72
refactor: remove isTracking() method
2022-01-30 18:53:43 +08:00
Evan You
81a6708739
chore: simplify effectScope
2022-01-28 21:02:09 +08:00
Evan You
2993a24618
perf(reactivity): optimize effect/effectScope active state tracking
2022-01-28 18:35:09 +08:00
Thorsten Lünborg
4be1037f31
fix(reactivity): ensure readonly refs can be replaced with new refs in reactive objects ( #5310 )
...
fix #5307
2022-01-23 08:08:27 -05:00
HcySunYang
c64907d261
fix(types): calling readonly() with ref() should return Readonly<Ref<T>> ( #5212 )
2022-01-21 02:33:30 -05:00
Thorsten Lünborg
171f5e9c60
fix(reactivity): mutating a readonly ref nested in a reactive object should fail. ( #5048 )
...
fix : #5042
2022-01-21 02:33:18 -05:00
Evan You
2f91872e7b
fix(ssr): only cache computed getters during render phase
...
fix #5300
2022-01-21 12:31:54 +08:00
Evan You
25bc6549eb
perf(reactivity): optimize effect run condition
2022-01-21 09:41:58 +08:00
Evan You
9c304bfe79
fix(reactivity): differentiate shallow/deep proxies of same target when nested in reactive
...
fix #5271
2022-01-18 09:22:41 +08:00
Evan You
9fda9411ec
feat(reactivity): add isShallow api
2022-01-18 09:22:41 +08:00
Evan You
f4f0966b33
fix(ssr): make computed inactive during ssr, fix memory leak
...
fix #5208
2022-01-16 18:22:18 +08:00
Evan You
5ac703055f
fix(types): handle ToRef<any>
...
fix #5188
2022-01-16 15:47:00 +08:00
Evan You
92f11d6740
fix(types): fix shallowReadonly type
2022-01-10 15:05:09 +08:00
Evan You
db729ce99e
feat(reactivity-transform/types): restructure macro types + export types for all shorthand methods
2021-12-11 18:15:44 +08:00
Evan You
2db9c909c2
feat(reactivity): support default value in toRef()
2021-12-11 16:41:58 +08:00
三咲智子
523b4b78f5
fix(types/reactivity): export ShallowRef type ( #5026 )
...
close #5205
2021-12-05 23:18:21 -05:00
Evan You
6d46b36e7c
revert: "fix(types): use proper array type when unwrapping reactive array ( #4807 )"
...
This reverts commit 89c54ee2b9
.
2021-11-26 10:54:12 +08:00
Cheese
89c54ee2b9
fix(types): use proper array type when unwrapping reactive array ( #4807 )
2021-11-25 05:41:25 -05:00
JensDll
c6cd6a7938
fix (types): do not unwrap refs in `toRefs` ( #4966 )
2021-11-25 04:39:09 -05:00
Evan You
d145128ab4
fix(reactivity): retain readonly proxies when setting as reactive property
...
fix #4986
2021-11-25 12:14:39 +08:00
Jeet Mandaliya
61720231b4
chore: typo [skip ci] ( #4961 )
2021-11-18 11:01:11 +01:00
Marvin Rudolph
d56f115f71
chore(reactivity): fix typo in types ( #4889 )
2021-11-02 20:19:39 +01:00
Evan You
c803eb15ec
chore: avoid rollup plugin ts warning
2021-10-09 18:34:54 -04:00
Evan You
20a361541c
fix(types): fix ref unwrapping type inference for nested shallowReactive & shallowRef
...
fix #4771
2021-10-09 17:51:15 -04:00
Che Guevara
925bc346fe
fix(types): make `toRef` return correct type( fix #4732 ) ( #4734 )
...
* fix(types): make `toRef` return correct type(fix #4732 )
* chore: use correct test
Co-authored-by: Evan You <yyx990803@gmail.com>
2021-10-08 11:57:49 -04:00
Thorsten Lünborg
ed0071ac1a
fix(types): ensure that DeepReadonly handles Ref type properly ( #4714 )
2021-10-07 18:30:54 -04:00
zhangenming
52e4ea732d
refactor(reactivity): reuse toReactive helper ( #4641 )
2021-09-22 10:11:54 -04:00
zhangenming
b264551c9b
refactor(reactivity): reuse computed getter check ( #4623 )
2021-09-21 13:03:09 -04:00
n2ptune
2361ca4fc2
chore(reactivity): fix typo in dep ( #4534 ) [ci skip]
2021-09-07 11:31:12 -04:00
Evan You
815bfcffae
fix(types): fix ref macro types
...
fix #4499
2021-09-04 16:42:46 -04:00
zhangenming
a6e6253319
types(reactivity): adjust type exports ( #4407 )
2021-09-01 16:49:12 -04:00
zhangenming
9043d0dca7
refactor(reactivity): use explicit assignments. ( #4401 )
2021-08-23 18:32:58 -04:00
Evan You
951fbb197b
Revert "chore: add missing space in warning message ( #4359 ) [ci skip]"
...
This reverts commit c68cba82ea
.
2021-08-17 12:18:54 -04:00
zhangenming
d8da4214fc
refactor(reactivity): reduce variable access ( #4366 )
2021-08-17 12:11:52 -04:00
okbug
c68cba82ea
chore: add missing space in warning message ( #4359 ) [ci skip]
2021-08-17 11:28:33 -04:00
Haoqun Jiang
7c4e4514d1
chore: rename `onDispose` to `onScopeDispose` in warnings and tests ( #4355 )
2021-08-16 18:19:06 -04:00
webfansplz
e04680b0aa
test(reactivity): add test case for effectScope ( #4239 )
2021-08-10 13:59:58 -04:00
Amour1688
d3d5ad204d
fix(types): remove explicit return type annotation requirement for `this` inference in computed options ( #4221 )
2021-08-02 09:18:35 -04:00
Evan You
13c69469f2
refactor: simplify for size
2021-07-29 10:45:05 -04:00
Bas van Meurs
91f29540fe
refactor(reactivity): optimize child effect scope dereferencing ( #4184 )
2021-07-29 10:26:24 -04:00
Evan You
1867591e7c
fix(reactivity): dereference nested effect scopes on manual stop
2021-07-28 12:08:01 -04:00
Pick
da6c055b19
types(reactivity): simplify UnwrapNestedRefs ( #4194 )
2021-07-28 11:15:08 -04:00
Pick
b79e4ca717
types(reactivity): Simplify the SymbolExtract ( #4162 )
2021-07-28 11:12:46 -04:00
Evan You
2581cfb707
fix(types): fix types for readonly ref
...
fix #4180
2021-07-23 15:24:58 -04:00
Evan You
14ca881a1b
feat(reactivity): deferredComputed
...
Note: this is not exposed as part of Vue API, only as
a lower-level API specific to @vue/reactivity
2021-07-20 17:39:19 -04:00
Evan You
33c2fbfdc8
fix(reactivity): revert computed scheduler change
...
fix #4157
2021-07-20 16:45:29 -04:00
Evan You
47f488350c
chore: run updated prettier
2021-07-19 18:24:18 -04:00
Evan You
6eb47f000a
fix(reactivity): computed should not trigger scheduler if stopped
...
fix #4149
2021-07-19 13:37:03 -04:00
Evan You
5cea9a1d4e
feat(reactivity): support onTrack/onTrigger debug options for computed
2021-07-16 14:30:49 -04:00
Evan You
2dd4739089
test: more test cases for computed w/ scheduler
2021-07-16 14:30:49 -04:00
Evan You
1fe2239270
refactor: sync value access for chained computed w/ scheduler
2021-07-16 14:30:49 -04:00
Evan You
979a841946
chore: use consistent file naming
2021-07-16 14:30:49 -04:00
Evan You
eae7c247af
refactor: reduce bundle size
2021-07-16 14:30:49 -04:00
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
Evan You
2acf3e84b9
feat(reactivity): add triggerRef API
...
Also make shallowRef assignment behavior consistent with normal ref
2020-04-22 18:00:10 -04:00
Evan You
b0d4df9743
perf(reactivity): ref should not trigger if value did not change
...
Note: shallowRef will always trigger on assignment because it does not
account for deep mutations
close #1012
2020-04-22 15:11:01 -04:00
Carlos Rodrigues
0bdd889156
fix(types): fix ref(false) type to Ref<boolean> ( #1028 )
2020-04-22 11:54:54 -04:00
limichange
fa40d1ef3a
refactor(reactivity): simplify if condition ( #1002 )
2020-04-20 13:39:35 -04:00
Cédric Exbrayat
4d014dc3d3
fix(reactivity): remove Symbol.observable ( #968 )
...
* chore: add @types/node as an explicit dependency
As `tsconfig.json` references it, it should be listed in the dependencies.
It currently uses an older version: this commit also bumps to the latest v12 version, and fixes a typing issue.
* fix(reactivity): remove Symbol.observable
`Symbol.observable` is brought by `@types/node@12` and is not a "well-known" typescript symbol https://www.typescriptlang.org/docs/handbook/symbols.html that can be find in lib.es20xx like the others. It has been removed in `@types/node@v13`.
It means that an application using vue@3.0.0-alpha.13 does not compile unless it explicitely adds `@types/node@v12` as a dependency and `node` in its own tsconfig types.
2020-04-16 09:33:30 -04:00
Evan You
09b4202a22
refactor(reactivity): adjust APIs
...
BREAKING CHANGE: Reactivity APIs adjustments:
- `readonly` is now non-tracking if called on plain objects.
`lock` and `unlock` have been removed. A `readonly` proxy can no
longer be directly mutated. However, it can still wrap an already
reactive object and track changes to the source reactive object.
- `isReactive` now only returns true for proxies created by `reactive`,
or a `readonly` proxy that wraps a `reactive` proxy.
- A new utility `isProxy` is introduced, which returns true for both
reactive or readonly proxies.
- `markNonReactive` has been renamed to `markRaw`.
2020-04-15 16:45:20 -04:00
pikax
8a74260b70
types: remove tuple check and add type check for tuple
2020-04-15 16:22:44 +01:00
Carlos Rodrigues
70b55d797f
Apply suggestions from code review
...
Co-Authored-By: Evan You <yyx990803@gmail.com>
2020-04-15 16:07:07 +01:00
pikax
dcb5985c00
Merge remote-tracking branch 'github/master' into changing_unwrap_ref
2020-04-15 15:54:26 +01:00
Evan You
3178504273
refactor(reactivity): make readonly non-tracking
2020-04-14 23:49:46 -04:00
Evan You
09b44e07cb
refactor(reactivity): move array ref handling into getter
2020-04-14 22:18:58 -04:00
Evan You
486dc188fe
feat(reactivity): add support for `toRef` API
2020-04-14 20:49:18 -04:00
Evan You
b83c580131
feat(reactivity): add support for `customRef` API
2020-04-14 20:45:46 -04:00
Evan You
78977c3997
fix(scheduler): sort jobs before flushing
...
This fixes the case where a child component is added to the queue before
its parent, but should be invalidated by its parent's update. Same logic
was present in Vue 2.
Properly fixes #910
ref: https://github.com/vuejs/vue-next/issues/910#issuecomment-613097539
2020-04-14 17:31:35 -04:00
Evan You
e8a866ec99
refactor(reactivity): remove stale API `markReadonly`
...
BREAKING CHANGE: `markReadonly` has been removed.
2020-04-13 17:39:48 -04:00
pikax
6a66b7b60a
Merge remote-tracking branch 'github/master' into changing_unwrap_ref
2020-04-13 18:32:14 +01:00
Thorsten Lünborg
33ccfc0a8b
fix(types): UnwrapRef should bail on DOM element types ( #952 )
...
fix #951
2020-04-13 11:51:32 -04:00
pikax
c20d8af8c0
types: add symbolExtract to extract all known symbols
...
#951
2020-04-12 11:45:56 +01:00
pikax
ab9add4f78
types: bring back my changes
2020-04-08 21:34:00 +01:00
ysj16
667e42065d
chore: typo ( #928 )
2020-04-06 09:09:44 -04:00
Evan You
5dcc645fc0
fix(reactivity): track reactive keys in raw collection types
...
Also warn against presence of both raw and reactive versions of the
same object in a collection as keys.
fix #919
2020-04-04 12:57:22 -04:00
Evan You
f3b6559408
fix(types/reactivity): add generics constraint for markNonReactive
...
fix #917
2020-04-03 21:06:03 -04:00
Evan You
0764c33d3d
fix(reactivity): scheduled effect should not execute if stopped
...
fix #910
2020-04-02 19:50:48 -04:00
Evan You
45ba06ac5f
fix(reactivity): should not trigger map keys iteration when keys did not change
...
fix #877
2020-03-24 12:43:06 -04:00
Evan You
1b2149dbb2
fix(reactivity): should not observe frozen objects
...
fix #867
2020-03-23 11:28:20 -04:00
Evan You
b8c1be18f3
refactor(types): use stricter settings
...
fix #847
2020-03-23 11:08:22 -04:00
Evan You
ba9a91c48c
refactor: remove null comparisons
2020-03-18 18:14:51 -04:00
djy0
b13886b1ba
types(reactivity): remove this in get accessor, fix #800 ( #806 )
2020-03-09 16:01:49 -04:00
Evan You
274f81c5db
fix(reactivity): allow effect trigger inside no-track execution contexts
...
fix #804
2020-03-06 12:11:37 -05:00
hareku
643ff233af
types(reactivity): add undefined type to ref/shallowRef when no args ( #791 )
2020-03-06 11:32:39 -05:00
Evan You
a3066581f3
fix(reactivity): should not trigger length dependency on Array delete
...
close #774
2020-03-06 11:31:10 -05:00
Evan You
cc69fd72e3
fix(reactivity): Map/Set identity methods should work even if raw value contains reactive entries
...
fix #799
2020-03-06 11:10:02 -05:00
Evan You
16f9e63951
types: remove 'this' annotation from 'get' accessor ( #801 )
...
The next version of Typescript disallows 'this' parameter annotations on
accessors, which causes vue-next to fail to compile.
This PR removes the annotation and adds a cast instead.
Fixes #800
2020-03-05 16:57:52 -06:00
Evan You
3206e5dfe5
fix(types): shallowRef should not unwrap value type
2020-02-25 20:43:01 -05:00
Evan You
d4c6957e2d
fix(types): ref value type unwrapping should happen at creation time
2020-02-25 19:44:06 -05:00
Evan You
b36a76fe23
chore: remove debugger [ci skip]
2020-02-22 05:19:22 +01:00
guaijie
76c7f54269
perf(effect): optimize effect trigger for array length mutation ( #761 )
2020-02-22 05:17:30 +01:00
Evan You
e9024bf1b7
feat(reactivity): expose unref and shallowRef
2020-02-22 04:39:32 +01:00
Evan You
775a7c2b41
refactor: preserve refs in reactive arrays
...
BREAKING CHANGE: reactive arrays no longer unwraps contained refs
When reactive arrays contain refs, especially a mix of refs and
plain values, Array prototype methods will fail to function
properly - e.g. sort() or reverse() will overwrite the ref's value
instead of moving it (see #737 ).
Ensuring correct behavior for all possible Array methods while
retaining the ref unwrapping behavior is exceedinly complicated; In
addition, even if Vue handles the built-in methods internally, it
would still break when the user attempts to use a 3rd party utility
functioon (e.g. lodash) on a reactive array containing refs.
After this commit, similar to other collection types like Map and
Set, Arrays will no longer automatically unwrap contained refs.
The usage of mixed refs and plain values in Arrays should be rare in
practice. In cases where this is necessary, the user can create a
computed property that performs the unwrapping.
2020-02-21 17:48:39 +01:00
Evan You
627b9df4a2
fix(types): improve ref typing, close #759
2020-02-21 17:45:42 +01:00
Evan You
33622d6360
perf(reactivity): only trigger all effects on Array length mutation if new length is shorter than old length
2020-02-21 15:05:16 +01:00
guaijie
5fac65589b
fix(reactivity): should trigger all effects when array length is mutated ( #754 )
2020-02-21 11:38:07 +01:00
Evan You
e8e67729cb
fix(reactivity): effect should handle self dependency mutations
2020-02-18 13:22:09 -05:00
Evan You
e1c9153b9e
fix(reactivity): trigger iteration effect on Map.set
...
fix #709
2020-02-18 00:09:24 -05:00
Evan You
2fb7a63943
fix(computed): support arrow function usage for computed option
...
fix #733
2020-02-17 23:22:25 -05:00
Evan You
d9d63f21b1
fix(reactivity): avoid cross-component dependency leaks in setup()
2020-02-17 23:14:07 -05:00
jods
8874b21a7e
perf(reactivity): better computed tracking ( #710 )
2020-02-09 15:25:17 -05:00
Dmitry Sharshakov
7f38c1e0ff
feat(reactivity): add shallowReactive function ( #689 )
2020-02-04 10:15:27 -05:00
Evan You
763faac182
wip(ssr): revert reactivity ssr paths
...
The perf gains are not worth the correctness issues these paths may lead to
2020-01-27 16:00:18 -05:00
Evan You
e43f5935b5
refactor: better variable naming
2020-01-27 16:00:18 -05:00
Evan You
25a0d4a65f
wip(ssr): reduce reactivity overhead during ssr
2020-01-27 16:00:17 -05:00
Evan You
aefb7d282e
fix(reactivity): Array methods relying on identity should work with raw values
2020-01-23 13:42:31 -05:00
likui
0c42a6d8fa
types: refactor ref unwrapping ( #646 )
2020-01-20 13:22:18 -05:00
IU
2b4d0d6501
types(reactivity): handle primitive + object intersection types in UnwrapRef ( #614 )
2020-01-16 17:47:47 -05:00
likui
63a6563106
fix(reactivity): should delete observe value ( #598 )
...
fix #597
2020-01-13 17:11:49 -05:00
Carlos Rodrigues
985f4c91d9
types: improve isRef typing ( #578 )
2020-01-06 16:15:49 -05:00
Evan You
755c7b581c
chore: mark get/set create calls pure
2019-12-20 11:16:46 -05:00
Evan You
0a4f306492
fix: shallowReadonly should keep reactive properties reactive
...
ref #552
2019-12-20 11:14:07 -05:00
Evan You
46c5393224
perf(reactivity): optimize effect stack
2019-12-13 23:06:55 -05:00
ztplz
02478b48eb
chore: use const instead of let ( #524 )
2019-12-06 00:10:06 +01:00
Evan You
89a187b895
refactor(reactivity): separate track and trigger operation types
2019-12-03 11:30:24 -05:00
Evan You
57bbbb227c
fix(core): propsProxy should not convert non-reactive nested values
2019-12-02 14:11:12 -05:00
ztplz
2d40466d35
chore: remove unused parameter type definitions ( #481 )
2019-11-22 15:35:58 -05:00
Evan You
61d8941692
types(reactivity): ref type should not expose _isRef
2019-11-08 13:29:43 -05:00
Carlos Rodrigues
68ad302714
types(reactivity): add support for tuples in ref unwrapping ( #436 )
2019-11-08 12:52:24 -05:00
QuincyChen
d7d87622ce
refactor: use isArray function from shared ( #441 )
2019-11-08 09:52:24 -05:00
Evan You
d9c6ff372c
feat(core): allow passing explicit refs via props
2019-11-06 12:51:26 -05:00
Junyan
a02820d7e0
feat: warn when toRefs() receives non-reactive object ( #430 )
2019-11-05 10:44:28 -05:00
Evan You
f3c1fa75f6
feat(reactivity): provide correct tracking info for refs
2019-11-02 23:20:49 -04:00
Evan You
66ecd8b47f
types: setup tests for built d.ts files
2019-11-01 22:54:01 -04:00
Evan You
247c53672d
refactor(reactivity): simplify effect options
2019-10-30 11:11:23 -04:00
Junyan
d76cfba7fb
refactor(reactivity): reduce code of type check ( #377 )
2019-10-25 11:15:04 -04:00
相学长
abfb2ec8ed
types(reactivity): computed types remove `as` ( #367 )
2019-10-24 11:37:52 -04:00
Mayness
18a349ce8c
fix(reactivity): account for NaN in value change checks ( #361 )
2019-10-23 11:53:43 -04:00
Cr
246cad7459
fix(reactivity): Map.set should trigger when adding new entry with undefined value ( #364 )
2019-10-23 11:00:55 -04:00
Evan You
590e4e0ba9
chore: fix DebuggerEvent export
2019-10-22 11:53:32 -04:00
Evan You
af57ad110f
chore: revert prettier
2019-10-22 11:53:32 -04:00
Evan You
b5886189ba
types: massive refactor
2019-10-22 11:53:32 -04:00
Dmitry Sharshakov
74d8c5919d
types: improve computed types ( #343 )
2019-10-21 13:57:20 -04:00