使用 React Router v6 进行布局

第 1 步:设置 react router v6

复制代码
npm i -d react-router-dom@latest

第2步:定义路由结构

接下来,在 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="{&lt;layout"></route>}&gt;
          <route index element="{&lt;home"></route>} /&gt;
          <route path="/about" element="{&lt;about"></route>} /&gt;
          <route path="/contact" element="{&lt;contact"></route>} /&gt;
        
      </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 应用程序提供了一个干净且有组织的结构。尝试添加更多路由和组件以进一步增强您的应用程序!

相关推荐
踢球的打工仔16 分钟前
typescript-类
前端·javascript·typescript
天天打码30 分钟前
Svelte-无虚拟DOM、极致性能的现代高性能Web开发框架!
前端·node.js·vue·svelte
弓.长.36 分钟前
基础入门 React Native 鸿蒙跨平台开发:Animated 动画
react native·react.js·harmonyos
0思必得038 分钟前
[Web自动化] Selenium元素定位
前端·python·selenium·自动化·html
EEEzhenliang1 小时前
CSS知识概括、总结
前端·css
弓.长.1 小时前
基础入门 React Native 鸿蒙跨平台开发:Shimmer 闪光效果
react native·react.js·harmonyos
大阳光男孩1 小时前
ElementUI表格懒加载子级更新数据刷新不生效问题
前端·javascript·elementui
wy3136228211 小时前
C#——意框架(结构说明)
前端·javascript·c#
研☆香1 小时前
JS中的三种显示弹窗
开发语言·前端·javascript
俩毛豆1 小时前
HarmonyOS APP开发-一文讲清使用Web组件加载网页的三种方法-《精通HarmonyOS NEXT :鸿蒙App开发入门与项目化实战》读者福利
前端·华为·harmonyos