Skip to main content

Client runtime

The framework generates the hydration entry automatically. Application code normally imports navigation primitives from @nessframework/core or react-router:

import {
Link,
useNavigationProgress,
usePathname,
useRouter,
} from '@nessframework/core';

export function Navigation() {
const pathname = usePathname();
const navigation = useNavigationProgress();
const router = useRouter();

return (
<nav aria-busy={navigation.pending}>
<Link to="/">Home</Link>
<button onClick={() => router.refresh()}>Refresh {pathname}</button>
</nav>
);
}

useRouter exposes push, replace, back, forward, refresh, and prefetch. Links can prefetch route modules and data, and navigation automatically preserves race-condition safety.

Run ness reveal entry.client only when custom hydration behavior is required.