--- tags: brew-js-react --- # Link to other views Links to different view can be generated by `linkTo` function: ```typescript import { linkTo } from "brew-js-react"; import { Home } from "./views"; function Component() { return ( <a href={linkTo(Home)}>Home</a>; ); } // in ./views export const Home = registerView( () => import('./views/HomeImpl'), { view: 'home' }); ``` :::warning Note that the view component parsed to `linkTo` should be the one returned by `registerView`. ::: :::info The link is formatted such that when user open the link in new tab, the router in new page will be able to resume to correct view. ::: ## Passing route parameters Additional route parameters can be passed and be included in the generated path according to router settings: ```typescript import { linkTo } from "brew-js-react"; import { ProductInfo } from "./views"; function Component() { return ( <a href={linkTo(ProductInfo, { id: 5 })}>Product 5</a>; ); } ``` The link will be generated as `/product/5` with following setup: ```typescript brew.with(router)(app => { app.useRouter({ routes: [ '/{view:product}/{id}', ... ] }) }); // in ./views export const ProductInfo = registerView( () => import('./views/ProductInfoImpl'), { view: 'product', id: /.*/ }); ``` In actual product info component, the `id` parameter can be retrieved by `useRouteParam` hook: ```typescript // in ./views/ProductInfoImpl export default function ProductInfoImpl() { const id = useRouteParam('id'); /* ... */ } ```