使用 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 应用程序提供了一个干净且有组织的结构。尝试添加更多路由和组件以进一步增强您的应用程序!

相关推荐
猩猩程序员3 分钟前
Rust 动态类型与类型反射详解
前端
杨进军5 分钟前
React 实现节点删除
前端·react.js·前端框架
晓131313 分钟前
JavaScript加强篇——第六章 定时器(延时函数)与JS执行机制
开发语言·javascript·ecmascript
yanlele26 分钟前
【实践篇】【01】我用做了一个插件, 点击复制, 获取当前文章为 Markdown 文档
前端·javascript·浏览器
爱编程的喵30 分钟前
React useContext 深度解析:告别组件间通信的噩梦
前端·react.js
LeeAt31 分钟前
手把手教你构建自己的MCP服务器并把它连接到你的Cursor
javascript·cursor·mcp
前端风云志1 小时前
TypeScript枚举类型应用:前后端状态码映射的最简方案
javascript
望获linux1 小时前
【实时Linux实战系列】多核同步与锁相(Clock Sync)技术
linux·前端·javascript·chrome·操作系统·嵌入式软件·软件
魂祈梦2 小时前
rsbuild的环境变量
前端
赫本的猫2 小时前
告别生命周期!用Hooks实现更优雅的React开发
前端·react.js·面试