Commit Graph

61 Commits

Author SHA1 Message Date
Evan You a51f935b72 refactor: remove isTracking() method 2022-01-30 18:53:43 +08:00
Evan You 2993a24618 perf(reactivity): optimize effect/effectScope active state tracking 2022-01-28 18:35:09 +08: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
Jeet Mandaliya 61720231b4
chore: typo [skip ci] (#4961) 2021-11-18 11:01:11 +01: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
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
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
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
Evan You 3810de7d6b fix(reactivity): effect shoud only recursively self trigger with explicit options
fix #2125
2020-09-16 10:52:31 -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
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 ac81dcf0cc fix(reactivity): effect should still check sync self-trigger 2020-08-13 17:45:21 -04:00
Evan You 730e39eb76 refactor: remove unnecessary conditions and test case 2020-07-28 12:26:14 -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 5c490f1c45
refactor(computed): deprecated computedRunners (#1458) 2020-07-01 15:39:13 -04:00
susiwen8 ad2b940c17
chore: remove unnecessary export (#1044) [ci skip] 2020-04-24 13:02:44 -04:00
limichange fa40d1ef3a
refactor(reactivity): simplify if condition (#1002) 2020-04-20 13:39:35 -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 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 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
Evan You 274f81c5db fix(reactivity): allow effect trigger inside no-track execution contexts
fix #804
2020-03-06 12:11:37 -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
guaijie 76c7f54269
perf(effect): optimize effect trigger for array length mutation (#761) 2020-02-22 05:17:30 +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 d9d63f21b1 fix(reactivity): avoid cross-component dependency leaks in setup() 2020-02-17 23:14:07 -05:00
Evan You 46c5393224 perf(reactivity): optimize effect stack 2019-12-13 23:06:55 -05:00
Evan You 89a187b895 refactor(reactivity): separate track and trigger operation types 2019-12-03 11:30:24 -05:00
QuincyChen d7d87622ce refactor: use isArray function from shared (#441) 2019-11-08 09:52:24 -05:00
Evan You 247c53672d refactor(reactivity): simplify effect options 2019-10-30 11:11:23 -04:00
Evan You 590e4e0ba9 chore: fix DebuggerEvent export 2019-10-22 11:53:32 -04:00
Evan You b5886189ba types: massive refactor 2019-10-22 11:53:32 -04:00
Evan You e3b68972d8 perf: minor tweaks 2019-10-17 15:02:15 -04:00
Tidyzq a72652f6e6 refactor(reactivity): immediate return (#301) 2019-10-16 01:58:11 -04:00
夜宴 9a37c4b2c3 refactor(effect): use includes instead of indexOf (#286) 2019-10-15 11:18:26 -04:00