npm i -d react-router-dom@latest
接下来,在 app.js 文件中定义路由的结构。我们将为主页、关于页面和联系页面创建路由,并将它们与相应的组件关联起来。
// app.js import react from 'react'; import { browserrouter as router, routes, route } from 'react-router-dom'; import layout from './layout'; import home from './home'; import about from './about'; import contact from './contact'; function app() { return ( <router><routes><route path="/" element="{<layout"></route>}> <route index element="{<home"></route>} /> <route path="/about" element="{<about"></route>} /> <route path="/contact" element="{<contact"></route>} /> </routes></router> ); } export default app;
现在,让我们创建一个布局组件(layout.js),它将包含我们的共享标题和主要内容区域。
// layout.js import react from 'react'; import { outlet } from 'react-router-dom'; function layout() { return ( <div> <header><h1>my app</h1> <nav><ul> <li><a href="/">home</a></li> <li><a href="/about">about</a></li> <li><a href="/contact">contact</a></li> </ul></nav></header><main><outlet></outlet></main> </div> ); } export default layout;
为主页、关于页面和联系页面创建单独的组件。这些组件将代表每个页面的内容。
// home.js import react from 'react'; function home() { return ( <div> <h2>home page</h2> <p>welcome to the home page!</p> </div> ); } export default home;
// about.js import react from 'react'; function about() { return ( <div> <h2>about page</h2> <p>learn more about us!</p> </div> ); } export default about;
// Contact.js import React from 'react'; function Contact() { return ( <div> <h2>Contact Page</h2> <p>Reach out to us!</p> </div> ); } export default Contact;
恭喜!您已经使用 react router v6 成功构建了布局,允许您在不同页面之间导航,同时在整个应用程序中保持一致的布局。这种方法为具有多个路由的 react 应用程序提供了一个干净且有组织的结构。尝试添加更多路由和组件以进一步增强您的应用程序!