React Router Dom V6基本使用:如何设置到其他组件的路由

原文:https://www.freecodecamp.org/news/how-to-use-react-router-version-6/
汉化并简化一下


在本教程中,我们将讨论什么是React Router以及如何使用它。然后我们将讨论它的功能,以及如何在React应用中使用它们来导航和渲染多个组件。

请确保拥有:

  • 一个React应用
  • 对React组件有很好的理解

安装 react router dom v6

npm install react-router-dom@6

yarn add react-router-dom@6

如何配置React Router

安装后要做的第一件事是让React Router在应用的任何地方都可使用。
为此,请打开src文件夹中的index.js文件,从react-router-dom中导入BrowserRouter,并使用它来包裹根组件(App组件)
建立项目后,index.js 最初看起来像这样:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);

使用React Router进行修改后,你的index.js现在应该长这样:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import { BrowserRouter } from "react-router-dom";

ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>,
  document.getElementById("root")
);

我们所做只是将React.StrickMode替换为从react-router-dom导入的BrowserRouter。现在,路由功能在应用的任何地方都可以使用。

怎样路由到其他组件

现在我们来看看如何路由和渲染不同的组件。

第一步 - 创建多个组件

我们将创建HomeAboutContact组件,代码分别如下:
Home组件

function Home() {
  return (
    <div>
      <h1>This is the home page</h1>
    </div>
  );
}

export default Home;

About组件

import React from 'react'

function About() {
    return (
        <div>
            <h1>This is the about page</h1>
        </div>
    )
}

export default About

Contact组件

import React from 'react'

function Contact() {
    return (
        <div>
            <h1>This is the contact page</h1>
        </div>
    )
}

export default Contact

第二步 - 定义路由

由于App组件是React代码最初渲染的根组件,我们将在其中创建所有路由。
App 组件

import { Routes, Route } from "react-router-dom"
import Home from "./Home"
import About from "./About"
import Contact from "./Contact"

function App() {
  return (
    <div className="App">
      <Routes>
        <Route path="/" element={ <Home/> } />
        <Route path="about" element={ <About/> } />
        <Route path="contact" element={ <Contact/> } />
      </Routes>
    </div>
  )
}

export default App

首先我们导入了RoutesRoute。然后我们导入了所有需要在上面附加路由的子组件。现在让我们分解定义路由的过程。
Routes作为所有独立路由的容器/父级。

Route用于创建单个路由。它有两个attributes:

  • path,它指定所需组件的URL路径。你可以把这个路径名命名为任何名字。如上,你会注意到第一个路径名是反斜杠(/)。当应用程序第一次加载时,任何路径名是反斜杠的组件都会最先渲染。这意味着Home组件将是第一个被渲染的组件。
  • element,指定了路由应当渲染的组件

我们现在所做的就是定义路由及其路径,并将它们附加到各自的组件中。

如果你是从V5来的,那么你会注意到我们没有使用exactswitch,这很棒。

第三步 - 使用Link导航到路由

如果到目前为你的代码没有任何错误,那么您的浏览器应该正在渲染Home组件。
我们现在将使用另一个React Router的功能,根据我们在App组件中创建的路由和路径名导航到其他页面。如下:
Home组件

import { Link } from "react-router-dom";

function Home() {
  return (
    <div>
      <h1>This is the home page</h1>
      <Link to="about">Click to view our about page</Link>
      <Link to="contact">Click to view our contact page</Link>
    </div>
  );
}

export default Home;

Link组件类似于HTML中的anchor元素(<a>)。它的to属性指定了链接指向的路径。
回想一下在App组件中列出的路径名,当你点击链接时,它将检查你的路由并使用相应的路径名渲染组件。

在使用Link之前,一定要记得从react-router-dom中导入Link

总结

至此,我们已经看到了如何安装、设置和使用React Router的基本功能来导航到应用中的不同页面。这几乎涵盖了入门的基础知识,但还有更多更酷的功能。

例如,可以使用useNavigate将用户推送到各种页面,还可以使用useLocation获取当前URL。好吧,我们不会在文章末尾开始另一个教程。

你可以在React Router文档中查看更多功能。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值