热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么在ReactRouterv4中使用switch关键字?

为什么在ReactRouterv4中使用switch关键字?

为什么在 React Router v4 中使用 switch 关键字?

原文:https://www . geesforgeks . org/why-switch-关键字-in-react-router-v4/

ReactJS 是一个 Javascript 库,用于构建单页应用程序(SPA)。默认情况下,React 不提供路由功能。我们可以在 ReactJS 项目中使用 React Router 实现路由。React Router 是一个库,它支持在 React 应用程序中各种组件的视图之间进行导航,允许更改浏览器 URL,并使用户界面与 URL 保持同步。

在本文中,我们将了解路由如何在 React Router 中工作,以及如何利用 React Router 提供的交换机组件。

创建反应应用程序并安装模块:

步骤 1: 使用以下命令创建一个 React 应用程序。

npx create-react-app SWITCH_DEMO_APP

步骤 2: 创建项目文件夹后,使用以下命令移动到该文件夹。

cd SWITCH_DEMO_APP

步骤 3: 创建 React 应用程序后,使用以下命令将 React 路由器作为依赖项安装。

npm install --save react-router-dom

项目结构:删除部分非必需文件后的项目结构如下图所示。

项目结构

示例 1:不带交换机组件的路由–当我们使用 React Router 执行路由时,无论何时呈现页面,URL 路径都将与每条路由相匹配。所有匹配给定网址路径的路由路径都会被呈现。App.js 文件的内容如下。在这个文件中,我们创建了四个 div,每个 div 包含一个由 React Router 提供的链接组件。我们还创建了五条路线,即主页、个人资料、产品、产品/鞋子,以及一条路径等于 a *的路线,该路线是与每个网址路径匹配的通配符。

React Router 中的路径匹配是如何工作的?

React 路由器获取相对 URL,并将其与路由组件中提供的每个路径进行匹配。路线匹配的方式是,如果匹配了该相对网址的一部分,则呈现该路线。例如,如果相对 URL 为/产品/鞋子,则路径 //产品/产品/鞋子与 URL 匹配,并且渲染所有三条路线,但是/配置文件与 URL 不匹配。

文件名:App.js

java 描述语言

import React, { Fragment } from "react";
import { BrowserRouter as Router, Link, 
    Route } from "react-router-dom";
const Home = () => {
  return

Home

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

Profile

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

Shoes

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

Products

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

          Home
        

        

          Products
        

        

          Shoes
        

        

          profile
        

        
          
        

        
          
        

        
          
        

        
          
        

      

    

  );
};
export default App;

运行应用程序的步骤:从项目的根目录使用以下命令运行应用程序。

npm start

输出:点击‘鞋子’链接时显示网页的图片。

示例 2:使用交换机组件进行路由–当我们将我们的路由包装在交换机组件中时,它会确保一次只呈现一条路由。因此,在这种情况下,第一条路由将相对网址与每个路由组件的路径相匹配,并且只呈现与相对网址的一部分相匹配的第一条路径,如上所述。

语法:使用 Switch 组件的语法如下。















如果两条路线相互匹配,那么我们可以使用如下所示的精确的道具。




通过使用这个精确的道具,我们确保只有当相对网址与 / 完全匹配时,才会渲染回家路线。现在,如果相对网址是/配置文件,那么在代码中,如果配置文件路由位于 / 路由下方,则仅渲染配置文件路由并不重要。下面是我们使用 Switch 组件时 App.js 文件的内容。

文件名:App.js

java 描述语言

import React, { Fragment } from 'react';
import { BrowserRouter as Router, 
  Link, Route, Switch } from 'react-router-dom';
const Home = () => {
  return

Home

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

Profile

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

Shoes

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

Products

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

          Home
        

        

          Products
        

        

          Shoes
        

        

          profile
        

        
          
            
          

          
            
          

          
            
          

          
            
          

        

      

    

  );
};
export default App;

运行应用程序的步骤:从项目的根目录使用以下命令运行应用程序。

npm start

输出:使用 Switch 组件点击“鞋子”链接时显示网页的图片


推荐阅读
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 本文详细介绍如何在忘记MySQL服务器密码的情况下进行密码重置,包括具体的步骤和注意事项。 ... [详细]
  • Vue 实现表格分页功能详解
    本文将详细介绍如何在 Vue 中实现表格的分页功能,包括代码示例和具体实现步骤,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文详细介绍了 HTML 中 a 标签的 href 属性的多种用法,包括实现超链接、锚点以及调用 JavaScript 方法。通过具体的示例和解释,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了 Charles 工具的下载、安装、配置及使用方法,特别针对 HTTP 和 HTTPS 协议的数据抓取进行了说明。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Hadoop平台警告解决:无法加载本机Hadoop库的全面应对方案
    本文探讨了在Hadoop平台上遇到“无法加载本机Hadoop库”警告的多种解决方案。首先,通过修改日志配置文件来忽略该警告,这一方法被证明是有效的。其次,尝试指定本地库的路径,但未能解决问题。接着,尝试不使用Hadoop本地库,同样没有效果。然后,通过替换现有的Hadoop本地库,成功解决了问题。最后,根据Hadoop的源代码自行编译本地库,也达到了预期的效果。以上方法适用于macOS系统。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 本文详细介绍了在 Oracle 数据库中使用 MyBatis 实现增删改查操作的方法。针对查询操作,文章解释了如何通过创建字段映射来处理数据库字段风格与 Java 对象之间的差异,确保查询结果能够正确映射到持久层对象。此外,还探讨了插入、更新和删除操作的具体实现及其最佳实践,帮助开发者高效地管理和操作 Oracle 数据库中的数据。 ... [详细]
  • 体积小巧的vsftpd与pureftpd Docker镜像在Unraid系统中的详细配置指南:支持TLS加密及IPv6协议
    本文详细介绍了如何在Unraid系统中配置体积小巧的vsftpd和Pure-FTPd Docker镜像,以支持TLS加密和IPv6协议。通过这些配置,用户可以实现安全、高效的文件传输服务,适用于各种网络环境。配置过程包括镜像的选择、环境变量的设置以及必要的安全措施,确保了系统的稳定性和数据的安全性。 ... [详细]
author-avatar
MesecretyMark
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有