angular/packages
Alex Rickabaugh 4e890cc5ac refactor(core): add support for new effect scheduling. (#56501)
The original effect design for Angular had one "bucket" of effects, which
are scheduled on the microtask queue. This approach got us pretty far, but
as developers have built more complex reactive systems, we've hit the
limitations of this design.

This commit changes the nature of effects significantly. In particular,
effects created in components have a completely new scheduling system, which
executes them as a part of the change detection cycle. This results in
behavior similar to that of nested effects in other reactive frameworks. The
scheduling behavior here uses the "mark for traversal" flag
(`HasChildViewsToRefresh`). This has really nice behavior:

 * if the component is dirty already, effects run following preorder hooks
   (ngOnInit, etc).
 * if the component isn't dirty, it doesn't get change detected only because
   of the dirty effect.

This is not a breaking change, since `effect()` is in developer preview (and
it remains so).

As a part of this redesigned `effect()` behavior, the `allowSignalWrites`
flag was removed. Effects no longer prohibit writing to signals at all. This
decision was taken in response to feedback / observations of usage patterns,
which showed the benefit of the restriction did not justify the DX cost.

The new effect timing is not yet enabled - a future PR will flip the flag.

PR Close #56501
2024-09-18 14:52:25 -07:00
..
animations refactor(core): replace usages of removeChild (#57203) 2024-08-07 16:46:09 +00:00
bazel feat(core): drop support for TypeScript 5.4 (#57577) 2024-08-29 10:19:20 -07:00
benchpress refactor(docs-infra): complete removal of aio directory (#56496) 2024-06-18 12:26:00 -07:00
common fix(http): Dynamicaly call the global fetch implementation (#57531) 2024-09-03 09:10:23 -07:00
compiler refactor(compiler): finalize hydrate syntax (#57831) 2024-09-17 11:05:17 +02:00
compiler-cli fix(compiler-cli): extended diagnostics not validating ICUs (#57845) 2024-09-18 09:48:20 +02:00
core refactor(core): add support for new effect scheduling. (#56501) 2024-09-18 14:52:25 -07:00
docs/di docs: remove outdated/unsupported webworker doc (#49856) 2023-04-17 14:01:41 +00:00
elements fix(elements): support output()-shaped outputs (#57535) 2024-09-03 09:08:29 -07:00
examples refactor: migrate docs, examples, private, service worker and upgrade to prettier formatting (#54163) 2024-01-30 20:08:40 +00:00
forms docs: remove @searchKeywords (#57560) 2024-08-28 08:49:05 -07:00
language-service refactor(compiler): finalize hydrate syntax (#57831) 2024-09-17 11:05:17 +02:00
localize feat(bazel): remove unused ESM2022 from APF (#57559) 2024-08-28 08:45:38 -07:00
misc/angular-in-memory-web-api build: bump in-memory-web-api to v18 (#56018) 2024-05-23 12:00:29 +02:00
platform-browser refactor(animations): Add loading strategy for the Async Animations (#57493) 2024-08-27 13:15:51 -07:00
platform-browser-dynamic refactor(docs-infra): complete removal of aio directory (#56496) 2024-06-18 12:26:00 -07:00
platform-server fix(core): Handle @let declaration with array when preparingForHydration (#57816) 2024-09-17 16:29:39 +02:00
private/testing refactor(docs-infra): remove reliance on aio example macro (#56496) 2024-06-18 12:25:59 -07:00
router fix(router): Do not unnecessarily run matcher twice on route matching (#57530) 2024-08-27 13:20:58 -07:00
service-worker feat(core): Add whenStable helper on ApplicationRef (#57190) 2024-08-06 21:28:16 +00:00
upgrade fix(upgrade): Address Trusted Types violations in @angular/upgrade (#57454) 2024-08-26 09:04:47 -07:00
zone.js fix(zone.js): more robust check for promise-like objects (#57388) 2024-08-23 12:58:29 -07:00
BUILD.bazel refactor(docs-infra): migrate api-gen from dev-infra into the repo (#57241) 2024-08-05 17:06:29 +00:00
circular-deps-test.conf.js ci: complete migration to prettier formatting (#55580) 2024-04-29 14:00:16 -07:00
empty.ts
goog.d.ts
license-banner.txt build: update licence date. (#55129) 2024-04-08 11:31:12 -07:00
README.md docs: fix links to docs (#57391) 2024-08-19 09:20:15 -07:00
system.d.ts
tsconfig-build.json build: align with internal tsconfig options (#51728) 2023-09-12 11:39:42 -07:00
tsconfig-legacy-saucelabs.json feat(core): support TypeScript 5.5 (#56096) 2024-05-29 15:33:33 +02:00
tsconfig-test.json
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 feat(language-service): add code reactoring action to migrate @Input to signal-input (#57214) 2024-08-29 07:50:41 -07: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

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