0

0

高级:使用 React Router 进行路由

WBOY

WBOY

发布时间:2024-07-18 09:01:20

|

1192人浏览过

|

来源于dev.to

转载

高级:使用 react router 进行路由

作为一名高级开发人员,全面了解 react 应用程序中的路由至关重要。 react router 提供了一个强大的解决方案,用于根据 url 路径管理组件的导航和渲染。本指南涵盖了 react router 的设置、基本组件以及嵌套路由、动态路由、路由参数和路由防护等高级技术。

react 路由器简介

react router 是一个强大的库,用于处理 react 应用程序中的客户端路由。它允许动态路由、嵌套路由和基于 url 路径的条件渲染。

设置 react 路由器

首先,使用npm或yarn安装react router:

npm install react-router-dom


yarn add react-router-dom

路由、交换机、链接和 navlink 组件

react router 提供了几个组件来定义路由和处理导航。

路线组件

route 组件用于定义路径并将其与组件关联。

示例:

YIXUNCMS中秋专版2.0.4
YIXUNCMS中秋专版2.0.4

系统介绍:YIXUNCMS中专专版是易迅软件工作室在中秋节来临之即推出的专题模板建站系统,使用增强版后台管控系统,板板设计符合节日特点。易迅软件工作室恭祝全国人民中秋快乐。特别提示:由于网站页面的不同设计,部分后台功能未在前端进行体现。系统特点:1、采用目前流行的PHP语言编写,底层采用超轻量级框架作为系统支撑;2、页面布局使用DIV+CSS技术,遵循WEB标准,及大提高页面的浏览速度;3、使用应

下载
import react from 'react';
import { browserrouter as router, route } from 'react-router-dom';
import home from './home';
import about from './about';

const app = () => {
  return (
    
      
      
    
  );
};

export default app;

开关元件

switch 组件确保一次只渲染一条路线,匹配第一个适合的路线。

示例:

import react from 'react';
import { browserrouter as router, route, switch } from 'react-router-dom';
import home from './home';
import about from './about';
import notfound from './notfound';

const app = () => {
  return (
    
      
        
        
        
      
    
  );
};

export default app;

链接组件

link 组件创建导航链接,防止整页重新加载并保留单页应用程序体验。

示例:

import react from 'react';
import { browserrouter as router, route, link } from 'react-router-dom';
import home from './home';
import about from './about';

const app = () => {
  return (
    
      
      
      
    
  );
};

export default app;

导航链接组件

navlink 组件与 link 类似,但允许基于活动路线进行样式设置。

示例:

import react from 'react';
import { browserrouter as router, route, navlink } from 'react-router-dom';
import home from './home';
import about from './about';

const app = () => {
  return (
    
      
      
      
    
  );
};

export default app;

先进的路由技术

嵌套路由

嵌套路线允许您在其他路线中创建路线,这对于具有子导航的复杂布局非常有用。

示例:

import react from 'react';
import { browserrouter as router, route, switch, link, useroutematch } from 'react-router-dom';

const topic = ({ match }) => 

requested topic id: {match.params.topicid}

; const topics = () => { let { path, url } = useroutematch(); return (

topics

  • components
  • props v. state

please select a topic.

); }; const app = () => (
  • home
  • topics

home

); export default app;

动态路由

动态路由允许基于动态参数创建路由,对于用户配置文件或产品详细信息很有用。

示例:

import react from 'react';
import { browserrouter as router, route, switch, link } from 'react-router-dom';

const user = ({ match }) => 

user id: {match.params.userid}

; const app = () => (
  • user 1
  • user 2
); export default app;

路由参数

路由参数允许从 url 捕获值以在组件中使用。

示例:

import react from 'react';
import { browserrouter as router, route, switch, link } from 'react-router-dom';

const product = ({ match }) => 

product id: {match.params.productid}

; const app = () => (
  • product 101
  • product 202
); export default app;

路由守卫和重定向

保护路线

路由守卫根据用户身份验证等条件限制对某些路由的访问。

示例:

import react from 'react';
import { browserrouter as router, route, redirect } from 'react-router-dom';

const isauthenticated = false;

const privateroute = ({ component: component, ...rest }) => (
  
      isauthenticated ?  : 
    }
  />
);

const dashboard = () => 

dashboard

; const login = () =>

login

; const app = () => (
); export default app;

在 react router 中实现重定向

重定向可以以编程方式将用户导航到不同的路线。

示例:

import React from 'react';
import { BrowserRouter as Router, Route, Redirect, Switch } from 'react-router-dom';

const OldPage = () => 

Old Page (will redirect)

; const NewPage = () =>

New Page

; const App = () => ( ); export default App;

在此示例中,访问 /old-page 会自动将用户重定向到 /new-page。

结论

掌握 react router 的路由对于构建复杂且用户友好的 react 应用程序至关重要。了解如何设置路由、使用核心组件以及实现嵌套路由、动态路由、路由参数和路由防护等高级技术将使您能够创建强大的导航系统。作为高级开发人员,这些技能将帮助您在 react 项目中设计和实现可扩展的路由架构,确保无缝的用户体验和可维护的代码库。

路由优化大师
路由优化大师

路由优化大师是一款及简单的路由器设置管理软件,其主要功能是一键设置优化路由、屏广告、防蹭网、路由器全面检测及高级设置等,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

541

2023.09.21

Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

423

2024.03.13

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

30

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

13

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

26

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

2

2026.01.31

漫画防走失登陆入口大全
漫画防走失登陆入口大全

2026最新漫画防走失登录入口合集,汇总多个稳定可用网址,助你畅享高清无广告漫画阅读体验。阅读专题下面的文章了解更多详细内容。

8

2026.01.31

php多线程怎么实现
php多线程怎么实现

PHP本身不支持原生多线程,但可通过扩展如pthreads、Swoole或结合多进程、协程等方式实现并发处理。阅读专题下面的文章了解更多详细内容。

1

2026.01.31

php如何运行环境
php如何运行环境

本合集详细介绍PHP运行环境的搭建与配置方法,涵盖Windows、Linux及Mac系统下的安装步骤、常见问题及解决方案。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号