========== Inertia.js ========== Inertia.js lets you build modern SPAs with server-side routing. No API layer needed - your Litestar routes return page components directly. .. seealso:: For comprehensive documentation, see the :doc:`/inertia/index` section. Supported Frameworks -------------------- - React: ``litestar assets init --template react-inertia`` - Vue: ``litestar assets init --template vue-inertia`` - Svelte: ``litestar assets init --template svelte-inertia`` Quick Start ----------- .. code-block:: python from litestar import Litestar, get from litestar_vite import ViteConfig, VitePlugin @get("/", component="Home") async def home() -> dict: return {"message": "Welcome!"} @get("/users", component="Users") async def users() -> dict: return {"users": [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]} app = Litestar( route_handlers=[home, users], plugins=[ VitePlugin(config=ViteConfig(dev_mode=True, inertia=True)), ], ) Root Template ------------- .. code-block:: html
{{ vite_hmr() }} {{ vite('resources/main.tsx') }} React Entry Point ----------------- .. code-block:: tsx import { createInertiaApp } from "@inertiajs/react"; import { createRoot } from "react-dom/client"; const pages = import.meta.glob("./pages/**/*.tsx", { eager: true }); createInertiaApp({ resolve: (name) => pages[`./pages/${name}.tsx`], setup({ el, App, props }) { createRoot(el).render(