Skip to content

Fix/ssr list hydration#1

Merged
babaygt merged 3 commits into
babaygt:docs/add-ssr-sidebarfrom
puskuruk:fix/ssr-list-hydration
Mar 31, 2026
Merged

Fix/ssr list hydration#1
babaygt merged 3 commits into
babaygt:docs/add-ssr-sidebarfrom
puskuruk:fix/ssr-list-hydration

Conversation

@puskuruk

@puskuruk puskuruk commented Mar 31, 2026

Copy link
Copy Markdown

Also fix SSR todo example import paths (vite-plugin src/index.ts, CSS import).
Three changes fix SSR list hydration:

1. Add __adoptListItems() to Component: populates compiler-generated
   _*Items tracking arrays with adopted child components during
   hydration, so subsequent __reconcileList calls see existing items.

2. Silent restoreStoreState in hydrate(): discards pending change
   notifications from restoreStoreState since the DOM already reflects
   the server state and the tracking arrays aren't populated yet.

3. Clean up observers in renderToString: the dev-mode mismatch
   detection creates a temporary App instance whose constructor
   registers observers on shared stores. Without cleanup, these
   duplicate observers cause double reconciliation on every store
   change.
@babaygt babaygt merged commit 20cc4f4 into babaygt:docs/add-ssr-sidebar Mar 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants