当前位置:首页 > 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 支持高亮当前激活的路由。

实现react router 4.0

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 需要与子路由的路径拼接。

实现react router 4.0

<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 实现路由守卫,例如验证用户权限后再渲染目标组件。

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

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

标签: reactrouter
分享给朋友:

相关文章

react 如何执行

react 如何执行

安装 Node.js 和 npm React 开发需要 Node.js 环境,因为它提供了 npm(或 yarn)包管理工具。从 Node.js 官网 下载并安装最新 LTS 版本。安装完成后,在终端…

vue router 实现

vue router 实现

Vue Router 实现 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是实现 Vue Router 的关键步骤和配置方法。 安装 Vue Rout…

react如何更新

react如何更新

更新 React 版本的方法 检查当前 React 版本 运行以下命令查看项目中安装的 React 版本: npm list react 更新 React 及相关依赖 通过 npm 或 yarn…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

如何选购react

如何选购react

选购 React 相关产品或服务的建议 React 是一个用于构建用户界面的 JavaScript 库,广泛应用于前端开发。以下是选购 React 相关产品(如课程、书籍、工具、组件库等)的参考方法:…

react如何部署

react如何部署

部署 React 应用的常见方法 使用静态服务器部署 React 应用在构建后会生成静态文件,可以直接通过静态服务器部署。常用的静态服务器包括 Nginx、Apache 等。 运行构建命令生成静态…