angular/packages
Alex Rickabaugh 38c9f08c8d refactor(core): decouple effects from change detection (#51049)
Previously effects were queued as they became dirty, and this queue was
flushed at various checkpoints during the change detection cycle. The result
was that change detection _was_ the effect runner, and without executing CD,
effects would not execute. This leads a particular tradeoff:

* effects are subject to unidirectional data flow (bad for dx)
* effects don't cause a new round of CD (good/bad depending on use case)
* effects can be used to implement control flow efficiently (desirable)

This commit changes the scheduling mechanism. Effects are now scheduled via
the microtask queue. This changes the tradeoffs:

* effects are no longer limited by unidirectional data flow (easy dx)
* effects registered in the Angular zone will trigger CD after they run
  (same as `Promise.resolve` really)
* the public `effect()` type of effect probably isn't a good building block
  for our built-in control flow, and we'll need a new internal abstraction.

As `effect()` is in developer preview, changing the execution timing is not
considered breaking even though it may impact current users.

PR Close #51049
2023-09-12 08:12:56 -07:00
..
animations refactor(animations): cleanup ahead of animation lazy loading (#51249) 2023-08-31 18:35:48 +00:00
bazel fix(bazel): dedupe es2022 javascript files properly (#51500) 2023-08-29 17:55:34 +00:00
benchpress docs: updated the benchpress readme doc (#51110) 2023-07-21 16:43:30 +00:00
common build: migrate to node 18 (#51609) 2023-09-01 15:12:43 +00:00
compiler refactor(compiler): use native BigInt when calculating i18n digests (#48321) 2023-09-07 10:07:47 -07:00
compiler-cli build: attempt to deflake windows tests (#51701) 2023-09-08 09:28:02 -07:00
core refactor(core): decouple effects from change detection (#51049) 2023-09-12 08:12:56 -07:00
docs/di docs: remove outdated/unsupported webworker doc (#49856) 2023-04-17 14:01:41 +00:00
elements fix(elements): support input transform functions (#50713) 2023-06-22 09:47:16 -07:00
examples test(core): unit tests for the injector profiler and injector debugging APIs (#48639) 2023-08-01 11:44:40 -07:00
forms docs: fix see also links. (#51379) 2023-08-17 10:18:33 -07:00
language-service fix(language-service): correct incomplete escaping (#51557) 2023-08-29 19:48:25 +00:00
localize refactor(localize): ignore code duplication error with compiler package (#51500) 2023-08-29 17:55:34 +00:00
misc/angular-in-memory-web-api docs: update invalid links to the new http guides (#49456) 2023-06-22 17:06:59 -07:00
platform-browser refactor(core): decouple effects from change detection (#51049) 2023-09-12 08:12:56 -07:00
platform-browser-dynamic refactor(platform-browser-dynamic): remove reexport of MetadataOverrider (#51412) 2023-08-18 07:57:34 -07:00
platform-server refactor(core): adjust defer block behavior on the server (#51530) 2023-09-01 19:15:16 +00:00
private/testing fix(platform-server): bundle @angular/domino in via esbuild (#49229) 2023-02-28 13:34:50 -08:00
router feat(router): Add feature to support the View Transitions API (#51314) 2023-09-11 10:36:10 -07:00
service-worker feat(core): support TypeScript 5.2 (#51334) 2023-08-18 07:55:16 -07:00
upgrade refactor(upgrade): ignore cross relative import for package (#51500) 2023-08-29 17:55:34 +00:00
zone.js fix(zone.js): temporary allow deep imports (#51737) 2023-09-12 08:07:58 -07:00
BUILD.bazel build(bazel): list docs entrypoints under packages to simplify docgen 2022-11-22 13:51:16 -07:00
circular-deps-test.conf.js build: ignore type only imports/exports for circular dependency checks (#47017) 2022-08-18 12:06:09 -07:00
empty.ts
goog.d.ts refactor(core): replace references to goog.LOCALE with goog.getLocale() (#43089) 2021-08-10 10:35:26 -07:00
license-banner.txt build: bump license year (#44590) 2022-01-04 12:05:25 -08:00
README.md
system.d.ts
tsconfig-build.json refactor(core): throw an error when hydration marker is missing from DOM (#51170) 2023-08-04 11:31:49 -04:00
tsconfig-legacy-saucelabs.json refactor(compiler): drop obsolete NgFactory and NgSummary config options (#48268) 2023-02-21 13:03:59 -08:00
tsconfig-test.json build: switch devmode output to es2015 (#44505) 2022-01-05 23:20:20 +00:00
tsconfig-tsec-base.json refactor(core): throw an error when hydration marker is missing from DOM (#51170) 2023-08-04 11:31:49 -04:00
tsconfig.json refactor(core): throw an error when hydration marker is missing from DOM (#51170) 2023-08-04 11:31:49 -04:00
tsec-exemption.json fix(core): hardening attribute and property binding rules for <iframe> elements (#47964) 2022-11-09 00:47:56 -08:00
types.d.ts build: update to jasmine 4.0 (#45558) 2022-04-11 16:25:28 +00:00

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

Usage information and reference details can be found in Angular documentation.

License: MIT