## Demo: nested-islands ### NestedIslands.svelte ```svelte

The islands below are delayed on purpose to show the loading state.

1. mochi:defer server island with mochi:hydrate components inside

Loading server island

2. mochi:defer server island nesting two more islands

Loading server island
``` ### DeferWithHydrators.svelte ```svelte

Server island (mochi:defer), rendered at {renderedAt}.

It contains three independently hydrated counters — click them:

``` ### Counter.svelte ```svelte ``` ### DeferNest.svelte ```svelte

Outer server island (mochi:defer). It nests two more islands:

Loading inner server island
Loading hydrated server island
``` ### InnerServer.svelte ```svelte

{label} (mochi:defer)

Random number from the server: {randomNumber}

$props.id(): {islandId}

``` ### HydratedServer.svelte ```svelte

{label} (mochi:defer mochi:hydrate)

$props.id(): {islandId}

``` ### routes.ts ```ts import { Mochi } from 'mochi-framework'; import type { MochiRouteValue } from 'mochi-framework'; export const routes: Record = { '/demos/nested-islands': Mochi.page('./src/demos/nested-islands/NestedIslands.svelte'), }; ``` ### index.ts ```ts import { Mochi, logger } from 'mochi-framework'; import { routes } from './routes'; await Mochi.serve({ port: 3333, development: process.env.MODE === 'development', routes, }); logger.info('Server running at http://localhost:3333'); ```