angular-cn/packages/compiler-cli
Misko Hevery 70962465b5 fix(core): Switch `emitDistinctChangesOnlyDefaultValue` to true (#41121)
BREAKING CHANGE:

Switching default of `emitDistinctChangesOnlyDefaultValue`
which changes the default behavior and may cause some applications which
rely on the incorrect behavior to fail.

`emitDistinctChangesOnly` flag has also been deprecated and will be
removed in a future major release.

The previous implementation would fire changes `QueryList.changes.subscribe`
whenever the `QueryList` was recomputed. This resulted in an artificially
high number of change notifications, as it is possible that recomputing
`QueryList` results in the same list. When the `QueryList` gets recomputed
is an implementation detail, and it should not be the thing that determines
how often change event should fire.

Unfortunately, fixing the behavior outright caused too many existing
applications to fail. For this reason, Angular considers this fix a
breaking fix and has introduced a flag in `@ContentChildren` and
`@ViewChildren`, that controls the behavior.

```
export class QueryCompWithStrictChangeEmitParent {
  @ContentChildren('foo', {
    // This option is the new default with this change.
    emitDistinctChangesOnly: true,
  })
  foos!: QueryList<any>;
}
```
For backward compatibility before v12
`emitDistinctChangesOnlyDefaultValue` was set to `false. This change
changes the default to `true`.

PR Close #41121
2021-03-12 10:47:56 -08:00
..
integrationtest feat(core): drop support for zone.js 0.10.x (#40823) 2021-02-24 07:58:29 -08:00
linker feat(compiler-cli): support producing Closure-specific PURE annotations (#41021) 2021-03-04 16:04:38 -08:00
ngcc fix(core): Switch `emitDistinctChangesOnlyDefaultValue` to true (#41121) 2021-03-12 10:47:56 -08:00
src fix(core): Switch `emitDistinctChangesOnlyDefaultValue` to true (#41121) 2021-03-12 10:47:56 -08:00
test fix(core): Switch `emitDistinctChangesOnlyDefaultValue` to true (#41121) 2021-03-12 10:47:56 -08:00
BUILD.bazel fix(compiler-cli): report non-template diagnostics (#40331) 2021-01-13 10:55:04 -08:00
index.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
package.json build: support building with TypeScript 4.1 (#39571) 2020-11-25 11:10:01 -08:00
tsconfig-build.json build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00
tsconfig.json perf(ivy): ngcc - only find dependencies when targeting a single entry-point (#30525) 2019-07-09 09:40:46 -07:00