Content-Length: 737998 | pFad | https://github.com/angular/angular/commit/d8fbb909ce4380c0ea48512cf5d364a2785fd428

03 feat(core): rename afterRender to afterEveryRender and stabilize (#60… · angular/angular@d8fbb90 · GitHub
Skip to content

Commit d8fbb90

Browse files
pkozlowski-opensourcemmalerba
authored andcommitted
feat(core): rename afterRender to afterEveryRender and stabilize (#60999)
This change renames the afterRender to afterEveryRender and marks the renamed API as stable. BREAKING CHANGE: afterRender was renamed to afterEveryRender. PR Close #60999
1 parent 7680a27 commit d8fbb90

File tree

13 files changed

+92
-111
lines changed

13 files changed

+92
-111
lines changed

adev/src/content/guide/components/dom-apis.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,23 @@ export class ProfilePhoto {
1919
The `nativeElement` property references the
2020
host [Element](https://developer.mozilla.org/docs/Web/API/Element) instance.
2121

22-
You can use Angular's `afterRender` and `afterNextRender` functions to register a **render
22+
You can use Angular's `afterEveryRender` and `afterNextRender` functions to register a **render
2323
callback** that runs when Angular has finished rendering the page.
2424

2525
```ts
2626
@Component({...})
2727
export class ProfilePhoto {
2828
constructor() {
2929
const elementRef = inject(ElementRef);
30-
afterRender(() => {
30+
afterEveryRender(() => {
3131
// Focus the first input element in this component.
3232
elementRef.nativeElement.querySelector('input')?.focus();
3333
});
3434
}
3535
}
3636
```
3737

38-
`afterRender` and `afterNextRender` must be called in an _injection context_, typically a
38+
`afterEveryRender` and `afterNextRender` must be called in an _injection context_, typically a
3939
component's constructor.
4040

4141
**Avoid direct DOM manipulation whenever possible.** Always prefer expressing your DOM's structure

goldens/public-api/core/index.api.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,26 @@ export interface AfterContentInit {
2525
}
2626

2727
// @public
28-
export function afterNextRender<E = never, W = never, M = never>(spec: {
28+
export function afterEveryRender<E = never, W = never, M = never>(spec: {
2929
earlyRead?: () => E;
3030
write?: (...args: ɵFirstAvailable<[E]>) => W;
3131
mixedReadWrite?: (...args: ɵFirstAvailable<[W, E]>) => M;
3232
read?: (...args: ɵFirstAvailable<[M, W, E]>) => void;
3333
}, options?: Omit<AfterRenderOptions, 'phase'>): AfterRenderRef;
3434

3535
// @public
36-
export function afterNextRender(callback: VoidFunction, options?: AfterRenderOptions): AfterRenderRef;
36+
export function afterEveryRender(callback: VoidFunction, options?: AfterRenderOptions): AfterRenderRef;
3737

3838
// @public
39-
function afterRender<E = never, W = never, M = never>(spec: {
39+
export function afterNextRender<E = never, W = never, M = never>(spec: {
4040
earlyRead?: () => E;
4141
write?: (...args: ɵFirstAvailable<[E]>) => W;
4242
mixedReadWrite?: (...args: ɵFirstAvailable<[W, E]>) => M;
4343
read?: (...args: ɵFirstAvailable<[M, W, E]>) => void;
4444
}, options?: Omit<AfterRenderOptions, 'phase'>): AfterRenderRef;
4545

4646
// @public
47-
function afterRender(callback: VoidFunction, options?: AfterRenderOptions): AfterRenderRef;
48-
export { afterRender as afterEveryRender }
49-
export { afterRender }
47+
export function afterNextRender(callback: VoidFunction, options?: AfterRenderOptions): AfterRenderRef;
5048

5149
// @public
5250
export function afterRenderEffect(callback: (onCleanup: EffectCleanupRegisterFn) => void, options?: Omit<AfterRenderOptions, 'phase'>): AfterRenderRef;

packages/core/src/core.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,10 @@ export {AfterRenderRef} from './render3/after_render/api';
112112
export {publishExternalGlobalUtil as ɵpublishExternalGlobalUtil} from './render3/util/global_utils';
113113
export {
114114
AfterRenderOptions,
115-
afterRender,
115+
afterEveryRender,
116116
afterNextRender,
117117
ɵFirstAvailable,
118118
} from './render3/after_render/hooks';
119-
export {afterRender as afterEveryRender} from './render3/after_render/hooks';
120119
export {inputBinding, outputBinding, twoWayBinding} from './render3/dynamic_bindings';
121120
export {ApplicationConfig, mergeApplicationConfig} from './application/application_config';
122121
export {makeStateKey, StateKey, TransferState} from './transfer_state';

packages/core/src/defer/dom_triggers.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import type {Injector} from '../di';
1010
import {AfterRenderRef} from '../render3/after_render/api';
11-
import {afterRender} from '../render3/after_render/hooks';
11+
import {afterEveryRender} from '../render3/after_render/hooks';
1212
import {assertLContainer, assertLView} from '../render3/assert';
1313
import {CONTAINER_HEADER_OFFSET} from '../render3/interfaces/container';
1414
import {TNode} from '../render3/interfaces/node';
@@ -345,5 +345,5 @@ export function registerDomTrigger(
345345
}
346346

347347
// Begin polling for the trigger.
348-
poll = afterRender({read: pollDomTrigger}, {injector});
348+
poll = afterEveryRender({read: pollDomTrigger}, {injector});
349349
}

packages/core/src/render3/after_render/hooks.ts

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export type ɵFirstAvailable<T extends unknown[]> = T extends [infer H, ...infer
3333
: [];
3434

3535
/**
36-
* Options passed to `afterRender` and `afterNextRender`.
36+
* Options passed to `afterEveryRender` and `afterNextRender`.
3737
*
3838
* @publicApi
3939
*/
@@ -108,7 +108,7 @@ export interface AfterRenderOptions {
108108
*
109109
* @usageNotes
110110
*
111-
* Use `afterRender` to read or write the DOM after each render.
111+
* Use `afterEveryRender` to read or write the DOM after each render.
112112
*
113113
* ### Example
114114
* ```angular-ts
@@ -120,7 +120,7 @@ export interface AfterRenderOptions {
120120
* @ViewChild('content') contentRef: ElementRef;
121121
*
122122
* constructor() {
123-
* afterRender({
123+
* afterEveryRender({
124124
* read: () => {
125125
* console.log('content height: ' + this.contentRef.nativeElement.scrollHeight);
126126
* }
@@ -131,7 +131,7 @@ export interface AfterRenderOptions {
131131
*
132132
* @developerPreview
133133
*/
134-
export function afterRender<E = never, W = never, M = never>(
134+
export function afterEveryRender<E = never, W = never, M = never>(
135135
spec: {
136136
earlyRead?: () => E;
137137
write?: (...args: ɵFirstAvailable<[E]>) => W;
@@ -170,7 +170,7 @@ export function afterRender<E = never, W = never, M = never>(
170170
*
171171
* @usageNotes
172172
*
173-
* Use `afterRender` to read or write the DOM after each render.
173+
* Use `afterEveryRender` to read or write the DOM after each render.
174174
*
175175
* ### Example
176176
* ```angular-ts
@@ -182,7 +182,7 @@ export function afterRender<E = never, W = never, M = never>(
182182
* @ViewChild('content') contentRef: ElementRef;
183183
*
184184
* constructor() {
185-
* afterRender({
185+
* afterEveryRender({
186186
* read: () => {
187187
* console.log('content height: ' + this.contentRef.nativeElement.scrollHeight);
188188
* }
@@ -191,11 +191,14 @@ export function afterRender<E = never, W = never, M = never>(
191191
* }
192192
* ```
193193
*
194-
* @developerPreview
194+
* @publicApi
195195
*/
196-
export function afterRender(callback: VoidFunction, options?: AfterRenderOptions): AfterRenderRef;
196+
export function afterEveryRender(
197+
callback: VoidFunction,
198+
options?: AfterRenderOptions,
199+
): AfterRenderRef;
197200

198-
export function afterRender(
201+
export function afterEveryRender(
199202
callbackOrSpec:
200203
| VoidFunction
201204
| {
@@ -208,12 +211,12 @@ export function afterRender(
208211
): AfterRenderRef {
209212
ngDevMode &&
210213
assertNotInReactiveContext(
211-
afterRender,
212-
'Call `afterRender` outside of a reactive context. For example, schedule the render ' +
214+
afterEveryRender,
215+
'Call `afterEveryRender` outside of a reactive context. For example, schedule the render ' +
213216
'callback inside the component constructor`.',
214217
);
215218

216-
!options?.injector && assertInInjectionContext(afterRender);
219+
!options?.injector && assertInInjectionContext(afterEveryRender);
217220
const injector = options?.injector ?? inject(Injector);
218221

219222
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
@@ -222,7 +225,7 @@ export function afterRender(
222225

223226
performanceMarkFeature('NgAfterRender');
224227

225-
return afterRenderImpl(callbackOrSpec, injector, options, /* once */ false);
228+
return afterEveryRenderImpl(callbackOrSpec, injector, options, /* once */ false);
226229
}
227230

228231
/**
@@ -392,7 +395,7 @@ export function afterNextRender(
392395

393396
performanceMarkFeature('NgAfterNextRender');
394397

395-
return afterRenderImpl(callbackOrSpec, injector, options, /* once */ true);
398+
return afterEveryRenderImpl(callbackOrSpec, injector, options, /* once */ true);
396399
}
397400

398401
function getHooks(
@@ -418,9 +421,9 @@ function getHooks(
418421
}
419422

420423
/**
421-
* Shared implementation for `afterRender` and `afterNextRender`.
424+
* Shared implementation for `afterEveryRender` and `afterNextRender`.
422425
*/
423-
function afterRenderImpl(
426+
function afterEveryRenderImpl(
424427
callbackOrSpec:
425428
| VoidFunction
426429
| {
@@ -435,7 +438,7 @@ function afterRenderImpl(
435438
): AfterRenderRef {
436439
const manager = injector.get(AfterRenderManager);
437440
// Lazily initialize the handler implementation, if necessary. This is so that it can be
438-
// tree-shaken if `afterRender` and `afterNextRender` aren't used.
441+
// tree-shaken if `afterEveryRender` and `afterNextRender` aren't used.
439442
manager.impl ??= injector.get(AfterRenderImpl);
440443

441444
const tracing = injector.get(TracingService, null, {optional: true});

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://github.com/angular/angular/commit/d8fbb909ce4380c0ea48512cf5d364a2785fd428

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy