angular/packages
Andrew Scott 83a3b85c35 refactor(core): Do not refresh view if producers did not actually change (#52476)
Producers represent values which can deliver change notifications.
When a producer value is changed, a change notification is propagated through the graph,
notifying live consumers which depend on the producer of the potential update.
Note here that this is a _potential_ update.

A producer may not have actually "changed" based on its equality function. With
this commit, before refreshing a view that is only marked for refresh
because its consumer is dirty, we poll producers for change to see if
they really have. If not, we can skip the refresh. The example test in this commit
shows that a `computed` which depends on a `signal` that is updated but
produces a value that is the same as before will _not_ cause the
component's template to refresh.

fixes #51797

PR Close #52476
2023-11-02 13:23:49 -07:00
..
animations fix(animations): remove finish listener once player is destroyed (#51136) 2023-11-02 10:29:38 -07:00
bazel build: update node.js engines version to be more explicate about v20 support (#52448) 2023-10-31 14:18:36 -07:00
benchpress test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
common Revert "fix(http): Don't override the backend when using the InMemoryWebAPI (#52425)" 2023-10-31 16:16:16 -07:00
compiler refactor(compiler): Delete some unused imports in template pipeline (#52464) 2023-11-02 10:58:48 -07:00
compiler-cli refactor(compiler): escape decorators in API JsDoc extraction (#52481) 2023-11-02 11:03:08 -07:00
core refactor(core): Do not refresh view if producers did not actually change (#52476) 2023-11-02 13:23:49 -07:00
docs/di docs: remove outdated/unsupported webworker doc (#49856) 2023-04-17 14:01:41 +00:00
elements build: update node.js engines version to be more explicate about v20 support (#52448) 2023-10-31 14:18:36 -07:00
examples docs(forms): replace fb with formBuilder (#52261) 2023-10-19 09:24:39 -07:00
forms build: update node.js engines version to be more explicate about v20 support (#52448) 2023-10-31 14:18:36 -07:00
language-service build: update node.js engines version to be more explicate about v20 support (#52448) 2023-10-31 14:18:36 -07:00
localize build: update node.js engines version to be more explicate about v20 support (#52448) 2023-10-31 14:18:36 -07:00
misc/angular-in-memory-web-api Revert "fix(http): Don't override the backend when using the InMemoryWebAPI (#52425)" 2023-10-31 16:16:16 -07:00
platform-browser build: add missing entries for the api extraction (#52452) 2023-10-31 14:53:34 -07:00
platform-browser-dynamic build: update node.js engines version to be more explicate about v20 support (#52448) 2023-10-31 14:18:36 -07:00
platform-server build: update node.js engines version to be more explicate about v20 support (#52448) 2023-10-31 14:18:36 -07:00
private/testing fix(platform-server): bundle @angular/domino in via esbuild (#49229) 2023-02-28 13:34:50 -08:00
router build: update node.js engines version to be more explicate about v20 support (#52448) 2023-10-31 14:18:36 -07:00
service-worker build: update node.js engines version to be more explicate about v20 support (#52448) 2023-10-31 14:18:36 -07:00
upgrade build: update node.js engines version to be more explicate about v20 support (#52448) 2023-10-31 14:18:36 -07:00
zone.js build: update cross-repo angular dependencies (#52191) 2023-10-26 14:12:34 -07:00
BUILD.bazel build: add target to generate api manifest (#52472) 2023-11-02 11:00:59 -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 build: align with internal tsconfig options (#51728) 2023-09-12 11:39:42 -07: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 build: align with internal tsconfig options (#51728) 2023-09-12 11:39:42 -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 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