angular/packages/core/src
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
..
change_detection Revert "refactor(core): rename ViewRef<T> to InternalViewRef<T> and remove existing InternalViewRef (#52430)" (#52484) 2023-11-01 10:13:12 -07:00
compiler refactor(compiler): introduce compiler infrastructure for input transforms (#50225) 2023-05-22 14:48:02 +00:00
debug refactor(core): cleanup DebugElement (#50896) 2023-10-13 12:24:15 +02:00
defer refactor(core): Update LView consumer to use only 1 consumer for a component (#52476) 2023-11-02 13:23:49 -07:00
di fix(core): emit provider configured event when a service is configured with providedIn (#52365) 2023-10-25 10:51:19 -07:00
hydration Revert "refactor(core): rename ViewRef<T> to InternalViewRef<T> and remove existing InternalViewRef (#52430)" (#52484) 2023-11-01 10:13:12 -07:00
i18n docs(core): Make links out of @see tags (#50110) 2023-06-14 10:54:38 +02:00
interface docs(core): Make links out of @see tags (#50110) 2023-06-14 10:54:38 +02:00
linker Revert "refactor(core): rename ViewRef<T> to InternalViewRef<T> and remove existing InternalViewRef (#52430)" (#52484) 2023-11-01 10:13:12 -07:00
metadata refactor: fix a number of typos throughout the codebase (#52249) 2023-10-25 16:51:24 -07:00
reflection build(bazel): add bazel targets for aio doc generation 2022-11-22 13:51:16 -07:00
render refactor(animations): make AnimationBuilder tree-shakable (#52097) 2023-10-12 18:13:22 +02:00
render3 refactor(core): Do not refresh view if producers did not actually change (#52476) 2023-11-02 13:23:49 -07:00
sanitization feat(core): change the URL sanitization to only block javascript: URLs (#49659) 2023-04-04 15:01:13 -07:00
testability refactor: use queueMicrotask to schedule micro tasks instead of various helpers (#50485) 2023-06-15 16:38:21 +02:00
util feat(http): allow customization of the HttpTransferCache. (#52029) 2023-10-06 12:12:47 -07:00
view refactor: remove unnecessary file (#49042) 2023-02-17 11:08:33 -08:00
zone refactor(core): implement __ignore_ng_zone__ flag (#51339) 2023-09-05 18:16:32 +00:00
application_config.ts feat(core): add mergeApplicationConfig method (#49253) 2023-03-01 11:20:31 -08:00
application_init.ts docs(docs-infra): fix codeblock snippet for APP_INITIALIZER (#52354) 2023-10-25 09:34:45 -07:00
application_module.ts perf(core): make LOCALE_ID and other tokens from ApplicationModule tree-shakable (#45102) 2022-02-18 13:40:02 -08:00
application_ref.ts Revert "refactor(core): rename ViewRef<T> to InternalViewRef<T> and remove existing InternalViewRef (#52430)" (#52484) 2023-11-01 10:13:12 -07:00
application_tokens.ts refactor(core): use performance API for hydration-related features (#52288) 2023-10-23 09:29:36 -07:00
change_detection.ts perf(core): remove support for the deprecated WrappedValue (#43507) 2021-10-01 12:25:19 -04:00
console.ts refactor(core): make platform core providers tree-shakable (#45506) 2022-04-12 22:28:23 +00:00
core.externs.js build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
core.ts refactor(core): modernize $localize checks (#52368) 2023-10-25 09:30:51 -07:00
core_private_export.ts Revert "refactor(core): rename ViewRef<T> to InternalViewRef<T> and remove existing InternalViewRef (#52430)" (#52484) 2023-11-01 10:13:12 -07:00
core_reactivity_export.ts feat(core): add Angular Signals to the public API (#49150) 2023-02-22 11:27:21 -08:00
core_reactivity_export_internal.ts refactor(core): extract signals API away from the 'signals' package (#51986) 2023-10-06 15:11:59 -07:00
core_render3_private_export.ts Revert "refactor(core): rename ViewRef<T> to InternalViewRef<T> and remove existing InternalViewRef (#52430)" (#52484) 2023-11-01 10:13:12 -07:00
di.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
error_details_base_url.ts docs: extract XSS security doc URL into a constant (#48082) 2022-11-17 13:21:16 -08:00
error_handler.ts refactor(core): remove unused error handler logic (#46216) 2022-06-02 13:40:16 -07:00
errors.ts refactor: fix a number of typos throughout the codebase (#52249) 2023-10-25 16:51:24 -07:00
event_emitter.ts refactor(core): ensure compatibility with noImplicitOverride (#42512) 2021-07-12 13:11:15 -07:00
image_performance_warning.ts refactor(core): do not run CDs when setting up image perf warnings (#52482) 2023-11-02 11:03:42 -07:00
initial_render_pending_tasks.ts fix(core): update ApplicationRef.isStable to account for rendering pending tasks (#50425) 2023-05-30 12:58:22 -07:00
linker.ts feat(core): introduce concept of DestroyRef (#49158) 2023-02-28 11:52:09 -08:00
metadata.ts refactor: fix a number of typos throughout the codebase (#52249) 2023-10-25 16:51:24 -07:00
platform_core_providers.ts refactor(core): make platform core providers tree-shakable (#45506) 2022-04-12 22:28:23 +00:00
r3_symbols.ts refactor(compiler): apply component metadata asynchronously when defer blocks are present (#51182) 2023-08-15 11:32:09 -07:00
render.ts refactor(core): clean up circular dependencies (#39722) 2020-11-18 09:15:29 -08:00
transfer_state.ts refactor(core): simplify state transfer escaping (#50201) 2023-05-10 11:31:34 -07:00
version.ts Revert "refactor(core): optimize calls to split and slice while computing version parts (#41208)" 2021-05-12 14:13:50 -04:00
zone.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00