What you will learn in Modern Angular
Also covers signals, standalone, SSR, zoneless, and more
Chapter by chapter
Concepts explained in this book
- standaloneA standalone component is an Angular component that can be used without belonging to an NgModule and can declare its dependencies directly.
- change detectionAngular change detection is the framework process that checks data bindings for changes and updates the rendered view accordingly.
- computed signalThe Angular computed function creates a derived read-only signal whose value is recalculated when the signals it reads change.
- component templateAn Angular template is declarative markup that defines a component's view and its data bindings.
- inject functionThe inject function is Angular's public API for retrieving a dependency from the active dependency-injection context.
- injection contextAn injection context is an Angular runtime context in which dependency-injection APIs can resolve providers and dependencies.
- dependency injectionDependency injection is a software design technique in which a framework supplies an object's required dependencies rather than the object constructing them itself.
- server-side renderingServer-side rendering is the generation of an application's initial HTML on a server before it is delivered to the browser.
- Angular moduleAn NgModule is an Angular mechanism for grouping declarations, imports, providers, and exports into a module-based application unit.
- AngularAngular is an open-source web application framework for building applications with components, templates, and other application-development features.
- mockingA mock implementation is a test-specific substitute implementation that simulates the behavior of a dependency.
- observableAn observable is a computation or data source that emits a sequence of values or notifications over time to subscribed consumers.
- Angular serviceAn Angular service is an application class that encapsulates reusable logic or state and can be provided through Angular dependency injection.
- viewChildviewChild is an Angular query function that returns a signal containing a reference to a matching element or component in a component view.
- model functionA model signal is an Angular signal that also acts as an input and emits changed values to support two-way binding.
- signal inputAn Angular signal input is a component input whose parent-provided value is represented by a signal rather than replacing the input mechanism itself.
- OperatorFunctionOperatorFunction is an RxJS function type that accepts a source observable, creates a destination observable, and returns the destination observable.
- local change detectionLocal change detection is an Angular change-detection mode in which signal updates refresh a component without triggering checks for its OnPush ancestors.
- zoneless applicationA zoneless application is an Angular application that performs reactivity and view updates without relying on zone.js to detect asynchronous task completion.
- signal-based componentA signal-based component is a proposed Angular component whose checking is driven by changes to its signal properties rather than Zone.js-based change detection.
- reactive effectAn Angular effect is a reactive computation that runs in response to changes in the signals it reads and is tied to an injection context for lifecycle management.
- custom RxJS operatorA custom RxJS operator is an application-defined operator that transforms or otherwise composes observable sequences.
- outputFromObservableoutputFromObservable is an Angular interoperability function that exposes emissions from an RxJS observable as a component or directive output.
- view-based change detectionView-based change detection is an Angular checking approach that tracks signal bindings per view and checks only views affected by a changed signal.
- hostDirectivesA host directive is an Angular directive composition mechanism that applies a standalone directive's behavior to the host element of another directive or component.
- toSignaltoSignal is an Angular RxJS interop function that creates a signal reflecting the latest value emitted by an observable.
- single-page applicationA single-page application is a web application that loads a single document and updates its displayed content through client-side code during navigation.
- Angular Testing LibraryAngular Testing Library is a testing library that renders Angular components and provides user-focused utilities for inspecting their resulting interface.
- takeUntilDestroyedtakeUntilDestroyed is an Angular RxJS interoperation operator that completes an observable when its associated destruction context is destroyed.
- state managementState management is the practice of storing, updating, and sharing application state across software components.
- pipe methodThe RxJS pipe function composes operators into a new operator or observable transformation.
- operatorAn RxJS operator is a function that transforms or composes observables, typically used with the pipe method to produce a new observable.
- DestroyRefDestroyRef is an Angular API object that provides access to the destruction lifecycle of an injection context and allows destruction callbacks to be registered.
- NgOptimizedImageNgOptimizedImage is an Angular directive that optimizes image loading, supports image priority metadata, and integrates with content delivery network providers.
- ngIfNgIf is an Angular structural directive that conditionally includes a template based on an expression.
- prerenderingStatic site generation is the process of producing web pages as prebuilt files before deployment rather than generating them for each request.
- DI tokenA DI token is an Angular identifier used by the dependency-injection system to locate a provider and obtain a dependency.
- ngComponentOutletngComponentOutlet is an Angular directive that dynamically creates and renders a component specified by a component-class reference.
- reactive programmingReactive programming is a programming technique that expresses computation in terms of asynchronous data streams and the propagation of changes.
- providers arrayA providers array is Angular metadata that lists dependency-injection providers for an NgModule, component, or application configuration.
- imports propertyThe imports array is Angular component metadata that lists modules, standalone components, directives, and pipes available to that component.
- Zone.jszone.js is a JavaScript library that tracks asynchronous execution contexts and can notify frameworks about task completion.
- WritableSignal<T>A writable signal is an Angular signal whose stored value can be changed directly through its write operations.
- JestJest is a JavaScript testing framework and test runner for executing automated tests, typically in a Node.js environment.
- RxJSRxJS is a JavaScript and TypeScript library for composing asynchronous and event-based programs with observable sequences.
- reactive formAn Angular reactive form is a model-driven form whose controls and validation state are represented and managed in application code.
- ViewChildrenviewChildren is an Angular query function that returns a signal containing references to matching elements or components in a component view.
- type-safe formA type-safe form is a form model whose controls and values are checked against static type information.
- SubscriptionAn RxJS subscription is an object representing an active connection to an observable and the execution associated with receiving its notifications.
- MonoTypeOperatorFunctionMonoTypeOperatorFunction is an RxJS operator function type whose source and result observables have the same value type.
- permissions operatorA permissions operator is a custom RxJS operator that checks required permissions before allowing an observable sequence to proceed.
- BehaviorSubjectBehaviorSubject is an RxJS subject that stores a current value, emits it to new subscribers, and multicasts subsequent values.
- angular.jsonangular.json is the Angular CLI workspace configuration file that defines project, build, and development-tool settings.
- Angular applicationAn Angular application is a software application built with the Angular framework.
- afterNextRenderafterNextRender is an Angular function that registers a callback to run once on the client after server-side rendering and the subsequent render.
- afterRenderafterRender is an Angular function that registers a callback to run on the client after each application render.
- ahead-of-time compilationAhead-of-time compilation is compilation performed before an application is deployed or executed.
- code compilationCompilation is the process of translating source code or templates into executable code or an intermediate representation.
- Document Object ModelThe DOM is the browser's in-memory tree representation of a document and its elements.
- just-in-time compilationJust-in-time compilation is compilation performed during application startup or execution rather than entirely before deployment.
- mock dataMock data is deliberately fabricated data supplied by a test in place of data from a real external or application source.
- windowwindow is the browser global object that represents a document's browsing context and exposes browser-specific APIs.
- injectorAn injector is an Angular dependency-injection component that maintains providers and resolves requested tokens to dependency values.
- test runnerA test runner is a program that discovers test files, executes their tests, and reports results and failures.
- provideClientHydrationprovideClientHydration is an Angular configuration function that registers client-side hydration support for server-rendered application output.
- type inferenceType inference is the determination of static types from expressions and their surrounding usage without explicit type annotations.
- side effectA side effect is an operation performed by a computation that changes state or interacts with something outside the computation's returned value.
- schematicA declarative generator that transforms project files and configuration according to a defined workflow.
- route guardAn Angular routing guard is a router hook that controls whether navigation or route activation may proceed.
- @forThe Angular @for syntax repeats template content for items in an iterable and supports explicit item tracking.
- @angular/core/rxjs-interoprxjs-interop is an Angular package that provides integration APIs between Angular reactivity and RxJS observables.
- directive composition apiThe directive composition API is an Angular API for composing a component or directive from other host directives.
- typed reactive formA typed reactive form is an Angular reactive form whose controls and values carry compile-time type information.
- canActivate methodcanActivate is an Angular guard method that returns a route-activation decision or a redirect tree.
- ng test commandng test is an Angular CLI command that runs an Angular project's unit tests and their setup commands.
- InjectionTokenInjectionToken is an Angular token used to identify a dependency that is not represented by a class type.
- @switchThe Angular @switch syntax selects template content by matching an expression against case clauses.
- SCAMSCAM (Single Component Angular Module) is an Angular organization pattern that packages a single component or declarable in its own NgModule with its related dependencies.
- combineLatest operatorThe RxJS combineLatest operator combines source observables and emits whenever one emits after every source has emitted at least once.
- RxJS SubjectAn RxJS Subject is an observable that also acts as an observer, accepts published values, and multicasts them to subscribers.
- ElementInjectorAn ElementInjector is an Angular injector associated with a DOM element, directive, or component instance in the rendered view hierarchy.
- ElementRefElementRef is an Angular wrapper that provides a reference to a host DOM element.
- module injectorA module injector is an Angular injector associated with NgModule-level dependency-injection configuration.
- NullInjectorNullInjector is Angular's terminal injector that throws an error when no provider is found for a requested dependency token.
- root injectorA root injector is the globally scoped Angular injector created when an application starts.
- bootstrapApplicationbootstrapApplication is an Angular function that creates and bootstraps an application from a root component and optional application configuration.
- @defer@defer is an Angular template block that defers loading and rendering part of a view according to specified triggers or conditions.
- search engine optimizationSearch engine optimization is the practice of improving a website's visibility and ranking in search-engine results.
- web crawlerA web crawler is an automated program that traverses web pages, extracts information, and discovers links for indexing or analysis.
- set methodA signal set method replaces the current value of a writable Angular signal with a supplied value.
- update methodA signal update method derives and assigns a new value by applying a callback to the signal's previous value.
- structural directiveA structural directive is an Angular directive that changes a template's structure by creating, removing, or transforming embedded views.
- setInputComponentRef.setInput is an Angular component-reference method that assigns an input value while integrating the assignment with change detection.
- zoneless change detectionZoneless is an Angular execution model that does not rely on zone-based asynchronous task tracking to schedule change detection.
- withInterceptorswithInterceptors is an Angular HTTP configuration function that registers functional interceptors in the interceptor pipeline.
- application injection contextAn application injection context is the Angular dependency-injection scope associated with application-level configuration and bootstrapping.
- importProvidersFromimportProvidersFrom is an Angular function that converts providers from NgModules or other provider sources into application or environment providers.
- TestBedTestBed is Angular's testing utility for configuring an isolated testing environment and creating or interacting with Angular artifacts.
- composabilityComposability is the property of software building blocks that allows them to be combined into larger behaviors without being rewritten.
- reuseReusability is the property of a software element being applicable in multiple contexts without being rewritten.
- change-detection schedulerA change-detection scheduler is a mechanism that determines when Angular initiates change-detection work in response to application activity.
- ExperimentalPendingTasksExperimentalPendingTasks is an Angular injectable that lets application code register pending asynchronous work before server-side rendering serialization completes.
- NgZoneNgZone is an Angular injectable wrapper that exposes APIs for interacting with Zone.js execution contexts.
- ChatGPTChatGPT is an artificial-intelligence conversational system that generates responses from natural-language prompts.
- promptA prompt is text supplied to an AI system as an instruction or question that guides its generated response.
- client-side renderingClient-side rendering is the generation of a web application's user interface in the browser rather than on the server.
- deploymentDeployment is the process of releasing software to an environment where it can be executed or accessed by users.
- required keyA required input is an Angular input declaration that requires a parent component to provide a value and enables compile-time diagnostics when the value is omitted.
- FormsModuleFormsModule is an Angular module that provides directives and providers for template-driven and reactive forms.
- ngModelngModel is an Angular directive that synchronizes a form control's value with a component property through two-way binding.
- template-based formsA template-driven form is an Angular form whose controls and validation are primarily configured through template directives and bindings.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
