当前位置:首页 > React

实现react router 4.0

2026-01-27 03:08:03React

安装 React Router

使用 npm 或 yarn 安装 React Router 的依赖包。React Router 4.0 分为核心库和针对不同环境的包(如 web 和 native)。对于 web 应用,安装 react-router-dom

npm install react-router-dom
# 或
yarn add react-router-dom

基本路由配置

在应用的入口文件(如 App.js)中引入 BrowserRouterRoute 组件。BrowserRouter 是路由的容器组件,Route 用于定义路由规则。

import React from "react";
import { BrowserRouter as Router, Route } from "react-router-dom";
import Home from "./Home";
import About from "./About";

function App() {
  return (
    <Router>
      <Route path="/" exact component={Home} />
      <Route path="/about" component={About} />
    </Router>
  );
}

导航链接

使用 LinkNavLink 组件实现导航跳转。NavLink 支持高亮当前激活的路由。

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

function Navigation() {
  return (
    <nav>
      <Link to="/">Home</Link>
      <NavLink to="/about" activeClassName="active">About</NavLink>
    </nav>
  );
}

动态路由与参数传递

通过 Routepath 属性定义动态路由,使用 :param 语法捕获参数。在组件中通过 props.match.params 访问参数。

<Route path="/user/:id" component={User} />

// User.js
function User(props) {
  const { id } = props.match.params;
  return <div>User ID: {id}</div>;
}

嵌套路由

在子组件中继续使用 Route 组件实现嵌套路由。父路由的 path 需要与子路由的路径拼接。

<Route path="/products" component={Products} />

// Products.js
function Products(props) {
  return (
    <div>
      <Route path={`${props.match.path}/:id`} component={ProductDetail} />
    </div>
  );
}

重定向与编程式导航

使用 Redirect 组件实现重定向,或通过 props.history 实现编程式导航。

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

function PrivateRoute(props) {
  const isAuthenticated = checkAuth();
  return isAuthenticated ? <Route {...props} /> : <Redirect to="/login" />;
}

// 编程式导航
function handleClick(props) {
  props.history.push("/new-path");
}

404 页面处理

通过 Switch 组件包裹路由,确保只有一个路由被匹配。将 path* 的路由放在最后作为 404 页面。

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

function App() {
  return (
    <Router>
      <Switch>
        <Route path="/" exact component={Home} />
        <Route path="/about" component={About} />
        <Route component={NotFound} />
      </Switch>
    </Router>
  );
}

路由守卫

通过高阶组件或自定义 Route 实现路由守卫,例如验证用户权限后再渲染目标组件。

实现react router 4.0

function PrivateRoute({ component: Component, ...rest }) {
  return (
    <Route
      {...rest}
      render={(props) =>
        isAuthenticated ? <Component {...props} /> : <Redirect to="/login" />
      }
    />
  );
}

以上方法涵盖了 React Router 4.0 的核心功能,可根据实际需求组合使用。

标签: reactrouter
分享给朋友:

相关文章

如何下载react

如何下载react

下载 React 的方法 通过 npm 或 yarn 安装 React 可以通过包管理器 npm 或 yarn 安装。确保已安装 Node.js(包含 npm),然后在项目目录中运行以下命令:…

react架构如何

react架构如何

React 架构核心概念 React 的架构围绕组件化、虚拟 DOM 和单向数据流设计。组件是构建用户界面的独立模块,分为函数组件和类组件。虚拟 DOM 通过高效的 Diff 算法减少直接操作真实 D…

如何同步react

如何同步react

同步React组件状态的方法 使用useState和useEffect钩子组合可以同步React组件的状态。useState用于声明状态变量,useEffect用于监听状态变化并执行副作用。 imp…

react如何开发

react如何开发

React 开发基础步骤 安装 Node.js 和 npm/yarn 确保系统已安装 Node.js(包含 npm)或 Yarn。React 项目依赖这些工具管理包和运行脚本。官方推荐使用 Node.…

react 如何遍历

react 如何遍历

遍历数组 在React中遍历数组通常使用map方法,它会返回一个新的数组。map是处理数组并渲染列表元素的首选方法。 const items = ['Apple', 'Banana', 'Cherr…

webstorm如何运行react

webstorm如何运行react

运行 React 项目的方法 在 WebStorm 中运行 React 项目需要确保项目已正确配置,并且依赖项已安装。以下是具体操作步骤: 确保项目依赖已安装 打开终端(Terminal),导航到项…