热门标签 | 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 组件点击“鞋子”链接时显示网页的图片


推荐阅读
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 本文将指导如何向ReactJS计算器应用添加必要的功能,使其能够响应用户操作并正确计算数学表达式。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文深入探讨了计算机网络的基础概念和关键协议,帮助初学者掌握网络编程的必备知识。从网络结构到分层模型,再到传输层协议和IP地址分类,文章全面覆盖了网络编程的核心内容。 ... [详细]
  • 华为USG基于源地址的多出口策略路由配置
    网络拓扑如下:组网情况:企业用户主要有技术部(VLAN10)和行政部(VLAN20),通过汇聚交换机连接到USG。企业分别通过两个不同运营商(ISP1和ISP2)连接到 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
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社区 版权所有