发布于 2026-01-06 0 阅读
0

如何使用 React Router

如何使用 React Router

在这篇文章中,我将向您展示如何在您的 React 项目中包含React Router

它使用起来很方便,而且对提升导航体验非常有帮助。👌🏽

以下是一个简单的导航栏示例(以及“关于”页面中重定向回“首页”的按钮):

替代文字

现在让我们来看看如何开始使用 React Router。

安装

  • 安装react-router-dom
  • 注意create-react-app:请确保在将其添加到项目之前,您已经在使用它了。
npm install react-router-dom
Enter fullscreen mode Exit fullscreen mode

包括路由器。

  • 用以下方式包装你的<App />组件<BrowserRouter />
  • 将每个组件<Route />及其路径和相应部分添加起来
  • 围绕你的路由进行循环<Switch />。Switch 会开始查找匹配的路由,而该exact属性会确保它与我们想要的完全匹配。

<Navbar />组件将负责处理<NavLink />,更多详情请参见下文。

import React from 'react';
import {BrowserRouter, Switch, Route} from 'react-router-dom';
import About from './About';
import Home from './Home'; 
import Navbar from './Navbar'; 

function App() {
  return (
      <BrowserRouter>
        <Navbar /> 

        <Switch>
          <Route exact path="/" component={Home}/>
          <Route exact path="/about" component={About}/>
        </Switch>

      </BrowserRouter>
  );
}

export default App;
Enter fullscreen mode Exit fullscreen mode

添加导航链接

  • <NavLink />将作为每个导航栏链接,使用客户端路由(单页应用程序除外)。
  • <NavLink />activeClassName属性允许我们为活动/非活动链接添加 CSS 样式。
import React from 'react';
import {NavLink} from 'react-router-dom'
import './App.css'; 

export default function Navbar() {
    return (
        <div>
            <NavLink 
                activeClassName="selected"
                className="not-selected"
                to="/"
                exact
                >HOME</NavLink>
            <NavLink 
                to="/about"
                activeClassName="selected"
                className="not-selected"
                exact
                >ABOUT
            </NavLink>
        </div>
    )
}
Enter fullscreen mode Exit fullscreen mode

钩子useHistory

  • 它的作用是什么?它提供对 history 属性的访问,您可以使用该属性进行导航。
  • 换句话说,它useHistory可以用来重定向,非常方便!
import React from 'react'; 
import {useHistory} from 'react-router-dom'; 

export default function About() {
    const history = useHistory()

    const handleClick = () => {
        history.push('/')
    }

    return (
        <div>
            <h1>ABOUT</h1>
            <p>THIS IS THE ABOUT PAGE</p>
            <div>
                <button 
                    onClick={handleClick}>
                    Back to Home
                </button>
            </div>
        </div>
    )
}


Enter fullscreen mode Exit fullscreen mode

就这样!😬

文章来源:https://dev.to/deboragaleano/how-to-use-react-router-3em5