What problem does it solve? Interactive Blazor components prerender on the server by default, causing OnInitializedAsync to run twice, data to be fetched twice, UI flicker during the prerender-to-interactive handoff, and null references when browser APIs are unavailable. This Skill provides the patterns to make components behave correctly across that boundary. ## Core Features & Use Cases - State Persistence: Persist component state across the prerender-to-interactive transition using the [PersistentState] attribute or the PersistentComponentState service, eliminating duplicate API and database calls. - Prerendering Control: Disable prerendering per component, per instance, or app-wide, and exclude pages from interactive routing with [ExcludeFromInteractiveRouting] when HttpContext access is required. - Runtime Detection: Use RendererInfo.IsInteractive to guard code that must only run after the interactive runtime attaches. - Use Case: A weather page fetches forecasts in OnInitializedAsync and calls the API twice with a visible flicker. Apply [PersistentState] with the ??= guard so data is serialized during prerender and restored on interactive activation. ## Quick Start Fix my Blazor page so it stops fetching data twice during prerendering by persisting the component state.