Linking Routes
Edit this pageOnce routes have been created within an application, using anchor tags will help users navigate between different views or pages.
import { lazy } from "solid-js";import { render } from "solid-js/web";import { Router, Route } from "@solidjs/router";
const Users = lazy(() => import("./pages/Users"));const Home = lazy(() => import("./pages/Home"));
const App = (props) => ( <> <nav> <a href="/users">Users</a> <a href="/">Home</a> </nav> <h1>My Site with lots of pages</h1> {props.children} </>);
render( () => ( <Router root={App}> <Route path="/users" component={Users} /> <Route path="/" component={Home} /> </Router> ), document.getElementById("app"));<A> Component
Solid Router also offers an <A> component.
The <A> component is similar to the HTML anchor tag but supports automatically applying the base URL path and relative paths.
import { lazy } from "solid-js";import { render } from "solid-js/web";import { Router, Route, A } from "@solidjs/router";
const Users = lazy(() => import("./pages/Users"));const Home = lazy(() => import("./pages/Home"));
const App = (props) => ( <> <nav> <A href="/users">Users</A> <A href="/">Home</A> </nav> <h1>My Site with lots of pages</h1> {props.children} </>);
render( () => ( <Router root={App}> <Route path="/users" component={Users} /> <Route path="/" component={Home} /> </Router> ), document.getElementById("app"));In addition, the <A> component has an active class if its href matches the current location, and inactive otherwise.
This provides the link with a CSS class to show when the link is active or inactive.
<A href="/users" active="underlined" inactive="default"> Users</A>By default, matching using the <A> component includes locations that are descendants (eg. /users and /users/123).
This component offers the end prop, which takes in a boolean to prevent matching these.
This can be useful when links to the root route (/) would match everything.