leptos/examples/islands_router
2024-09-30 20:08:39 -04:00
..
public feat: optional branch-marking in HTML to support initial work on client-side islands routing 2024-08-01 19:42:51 -04:00
src feat: optional branch-marking in HTML to support initial work on client-side islands routing 2024-08-01 19:42:51 -04:00
Cargo.toml change: rename island-router feature so people don't use it 2024-09-30 20:08:24 -04:00
LICENSE feat: optional branch-marking in HTML to support initial work on client-side islands routing 2024-08-01 19:42:51 -04:00
Makefile.toml feat: optional branch-marking in HTML to support initial work on client-side islands routing 2024-08-01 19:42:51 -04:00
README.md example: add README that actually explains this example 2024-09-30 20:08:39 -04:00
rust-toolchain.toml feat: optional branch-marking in HTML to support initial work on client-side islands routing 2024-08-01 19:42:51 -04:00
style.css feat: optional branch-marking in HTML to support initial work on client-side islands routing 2024-08-01 19:42:51 -04:00

Work in Progress

This example is something I wrote on a long layover in the Orlando airport in July. (It was really hot!)

It is the culmination of a couple years of thinking and working toward being able to do this, which you can see described pretty well in the pinned roadmap issue (#1830) and its discussion of different modes of client-side routing when you use islands.

This uses only server rendering, with no actual islands, but still maintains client-side state across page navigations. It does this by building on the fact that we now have a statically-typed view tree to do pretty smart updates with new HTML from the client, with extremely minimal diffing.

The demo itself works, but the feature that supports it is incomplete. A couple people have accidentally used it and broken their applications in ways they don't understand, so I've renamed the feature to dont-use-islands-router.