<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Decision guides on AngularTS</title><link>https://angular-wave.github.io/angular.ts/docs/decisions/</link><description>Recent content in Decision guides on AngularTS</description><generator>Hugo</generator><language>en</language><atom:link href="https://angular-wave.github.io/angular.ts/docs/decisions/index.xml" rel="self" type="application/rss+xml"/><item><title>Templates or typed views</title><link>https://angular-wave.github.io/angular.ts/docs/decisions/views/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://angular-wave.github.io/angular.ts/docs/decisions/views/</guid><description>&lt;h2 id="default">Default&lt;a class="td-heading-self-link" href="#default" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Use typed views for new TypeScript components when model-to-view type safety
matters. Use templates when designers own substantial HTML or server-delivered
markup is required.&lt;/p>
&lt;h2 id="choose-a-typed-view-when">Choose a typed view when&lt;a class="td-heading-self-link" href="#choose-a-typed-view-when" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>Refactors must check property and event bindings.&lt;/li>
&lt;li>The view is highly dynamic.&lt;/li>
&lt;li>You want real DOM construction without parsing HTML.&lt;/li>
&lt;li>A component and its view evolve together.&lt;/li>
&lt;/ul>
&lt;h2 id="choose-a-template-when">Choose a template when&lt;a class="td-heading-self-link" href="#choose-a-template-when" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>Markup is mostly static and visually authored.&lt;/li>
&lt;li>Existing template tooling is central to the team.&lt;/li>
&lt;li>Progressive enhancement starts from server HTML.&lt;/li>
&lt;/ul>
&lt;p>Both use normal module registration, dependency injection, lifecycle, and change
detection.&lt;/p></description></item><item><title>Controller state, models, or services</title><link>https://angular-wave.github.io/angular.ts/docs/decisions/state/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://angular-wave.github.io/angular.ts/docs/decisions/state/</guid><description>&lt;h2 id="default">Default&lt;a class="td-heading-self-link" href="#default" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Keep transient view state on the component controller.&lt;/p>
&lt;p>Use a named model when state is reactive, shared by multiple roots or
components, and benefits from snapshot, restore, or synchronization behavior.&lt;/p>
&lt;p>Use a service when the primary responsibility is an operation or external
resource rather than mutable view data.&lt;/p>
&lt;p>Ask who owns the state, who may mutate it, how long it lives, and how it resets.
Global state is an application-level lifetime commitment, not a shortcut for
passing data.&lt;/p></description></item><item><title>HTTP, SSE, WebSocket, or WebTransport</title><link>https://angular-wave.github.io/angular.ts/docs/decisions/transport/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://angular-wave.github.io/angular.ts/docs/decisions/transport/</guid><description>&lt;h2 id="default">Default&lt;a class="td-heading-self-link" href="#default" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Use HTTP for request-response work.&lt;/p>
&lt;ul>
&lt;li>Use SSE for server-to-client events with straightforward reconnect behavior.&lt;/li>
&lt;li>Use WebSocket for broadly supported bidirectional messages.&lt;/li>
&lt;li>Use WebTransport when independent streams or datagrams are required and the
support contract permits it.&lt;/li>
&lt;/ul>
&lt;p>Decide from direction, ordering, reliability, backpressure, authentication,
proxy support, observability, and fallback behavior. Hide transport details
behind an application service.&lt;/p></description></item><item><title>CSS or JavaScript animations</title><link>https://angular-wave.github.io/angular.ts/docs/decisions/animations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://angular-wave.github.io/angular.ts/docs/decisions/animations/</guid><description>&lt;h2 id="default">Default&lt;a class="td-heading-self-link" href="#default" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Use CSS transitions or keyframes for visual state changes. They are easy to
cancel and keep view logic small.&lt;/p>
&lt;p>Use JavaScript animation hooks when sequencing depends on application state,
measurements, asynchronous work, or coordinated entry and removal.&lt;/p>
&lt;p>Always respect reduced-motion preferences. Animation should explain change or
preserve spatial context; it must not block input or carry required information
by itself.&lt;/p></description></item><item><title>Component, directive, or web component</title><link>https://angular-wave.github.io/angular.ts/docs/decisions/building-blocks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://angular-wave.github.io/angular.ts/docs/decisions/building-blocks/</guid><description>&lt;h2 id="default">Default&lt;a class="td-heading-self-link" href="#default" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Use a component for an application-owned UI region with a controller and view.&lt;/p>
&lt;p>Use a directive to add behavior to existing DOM when the host and surrounding
content remain owned by another view.&lt;/p>
&lt;p>Use a web component when the element must cross framework or document boundaries
through browser-standard custom-element APIs.&lt;/p>
&lt;p>Avoid directives that secretly own large subtrees and components that mutate
unrelated DOM. Clear ownership makes cleanup, testing, and change detection
predictable.&lt;/p></description></item></channel></rss>