When you want to move between a page, you have a few options. Examples on this page will reference this routing structure:
_layout.tsx
Wraps all files in this directory and below
index.tsx
Matches "/"
blog.tsx
index.tsx
Matches "/blog"
[slug].tsx
Matches a single sub-path of "/blog", like "/blog/hello"
You can use the Link component as follows:
app/index.tsx
import { Link } from 'one'
export default function HomePage() {
  return (
    <>
      <Link href="/blog">
        Go to the blog
      </Link>
      <Link href="/blog/introducing-one">
        Go to the Introducing One article
      </Link>
    </>
  )
}
Link accepts the following props, where Href is your typed file system routes (or a string if you turn off typed file system routing) and TextProps is the React Native Text element props:
export interface LinkProps extends TextProps {
  /** Path to route to. */
  href: Href
  /** Forward props to child component. Useful for custom buttons. */
  asChild?: boolean
  /** Should replace the current route without adding to the history. */
  replace?: boolean
  /** Should push the current route  */
  push?: boolean
  /** On web, this sets the HTML `class` directly. On native, can be used with CSS interop tools. */
  className?: string
  onPress?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent) => void
  /**
    * **Web only:** Specifies where to open the `href`, passed to the underlying anchor (`<a>`) tag.
    *   See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target
    */
  target?: '_self' | '_blank' | '_parent' | '_top' | (string & object)
  /**
    * **Web only:** Specifies the relationship between the `href` and the current route.
    *   See: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel
    */
  rel?: string
  /**
    * **Web only:** Specifies that the `href` should be downloaded when the user clicks on the link.
    */
  download?: string
}
This hook will generate both an href string and an onPress function, see the useLinkTo docs for how to use it.
This hook returns a static object used for routing. It will never update, and is only used for imperatively controlling the router. Useful for programmatically controlling the routing, and choosing between a push or replace.
See the useRouter documentation page for more.
Edit this page on GitHub.