React 生態應用 - React Router(1)

目錄

擴展學習資料

?安裝和導入

Route匹配

@src/components/navbar.jsx

@src/App.js


擴展學習資料

資料名稱

鏈接

備注

閱讀react router組件文檔

https://react-router.docschina.org/web/guides/philosophy

Introduction | React Router 中文文檔

擴展閱讀

路由鑒權

React路由鑒權 - 掘金

React-Router v6 新特性解讀及遷移指南

React-Router v6 新特性解讀及遷移指南_前端勸退師的博客-CSDN博客

?安裝和導入

// v6
npm install react-router-dom --save 
  • react-router 路由核心功能
  • react-router-dom 基于【依賴】React-router,加入了一些在瀏覽器運行下的一些功能

基于瀏覽器開發的我們,只需要安裝react-router-dom就可以了

react-router-dom 提供的相關組件

  • BrowserRouter(基于history Api) http://www.abc.com/article/a1
  • hashRouter (#錨點路由) http://www.abc.com/#/article/a1

Route匹配

npm i react-router-dom@5.2.0
  • Route
    • 比較path屬性和當前地址的pathname。當一個匹配成功,它將渲染其內容,當它不匹配時就會渲染null
  • Switch
    • 一個會遍歷其所有的子元素,并僅渲染與當前地址匹配的第一個元素
  • Link
    • 使用作為url的導航,讓整個應用不刷新頁面在不同網址之間切換

@src/components/navbar.jsx

import React from 'react';
import { Link } from 'react-router-dom';
// 因為組件都打包到了bundle.js中,所以根據Link路由去判斷組件加載就不會請求網絡數據
const NavBar = () => {return (<ul><li>{/* 只加載局部組件 */}<Link to='/'>Home</Link></li><li><Link to='/products'>Products</Link></li><li><Link to='/posts/2018/06'>Posts</Link></li><li><Link to='/admin'>Admin</Link></li></ul>);
};
export default NavBar;
npm i react-router-dom@6.2.0
  • Routes
    • 替換Switch,更好用。

@src/App.js

import React, { Component } from 'react';
import NavBar from './components/navbar';
import Products from './components/products';
import Posts from './components/posts';
import Home from './components/home';
import Dashboard from './components/admin/dashboard';
// import ProductDetails from './components/productDetails';
// import NotFound from './components/notFound';
import { Route, Routes, Switch } from 'react-router-dom';
class App extends Component {render() {return (<div><NavBar /><div className='container'><Routes>{/* v6版本語法 */}<Route path='/products' element={<Products groupId="99" />} /><Route path='/posts' element={<Posts />} /><Route path='/admin' element={<Dashboard />} /><Route path='/' element={<Home />} />{/*v5版本語法 // <Switch> || exact只匹配第一個符合路由的組件<Route path='/' exact component={Home} /><Switch><Route path='/products' render={()=><Products?{...this.props} groupId="99" />} /></Switch>*/}</Routes></div></div>);}
}
export default App;

react-router v5文檔 中文文檔

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42212.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(stm32)低功耗模式

低功耗模式 執行哪個低功耗模式的程序判斷流程 標志位設置操作一定要在WFI/WFE之前&#xff0c;調用此指令后立即進入睡眠判斷流程 模式對比 睡眠模式 停止模式 待機模式

FLatten Transformer

FLatten Transformer: Vision Transformer using Focused Linear Attention ICCV 2023 聚焦式線性注意力模塊 關于Transformer 在Transformer模型應用于視覺領域的過程中&#xff0c;降低自注意力的計算復雜度是一個重要的研究方向。線性注意力通過兩個獨立的映射函數來近似S…

3 Python的數據類型

概述 在上一節&#xff0c;我們介紹了Python的基礎語法&#xff0c;包括&#xff1a;編碼格式、標識符、關鍵字、注釋、多行、空行、縮進、引號、輸入輸出、import、運算符、條件控制、循環等內容。Python是一種動態類型的編程語言&#xff0c;這意味著當你創建一個變量時&…

1.初識Web

文章目錄 1. 什么是Web?2.初始Web前端2.1.Web標準 1. 什么是Web? web:全球廣域網&#xff0c;也稱萬維網(www World Wide Web)&#xff0c;能夠通過瀏覽器訪問的網站。 2.初始Web前端 網頁有哪些部分組成&#xff1f; 文字、圖片、音頻、視頻、超鏈接… 我們看到的網頁&am…

react 生命周期方法

組件的生命周期 每個組件都包含 “生命周期方法”&#xff0c;你可以重寫這些方法&#xff0c;以便于在運行過程中特定的階段執行這些方法。你可以使用此生命周期圖譜作為速查表。在下述列表中&#xff0c;常用的生命周期方法會被加粗。其余生命周期函數的使用則相對罕見。 掛…

Windows Oracle21C與PLSQL Developer 15配置

1、下載Oracle21c并安裝 下載地址&#xff1a;https://www.oracle.com/database/technologies/oracle21c-windows-downloads.html 2、下載PLSQL Developer 15并安裝 下載地址&#xff1a;https://www.allroundautomations.com/products/pl-sql-developer/#pricing 3、配置O…

TypeScript教程(四)基本運算符

一、運算符 TypeScript包含以下幾種運算符&#xff1a; 1.算術運算符 2.邏輯運算符 3.關系運算符 4.按位運算符 5.賦值運算符 6.三元/條件運算符 7.字符串運算符 8.類型運算符 1.算術運算符 y5 運算符描述例子x 運算結果y 運算結果加法xy275-減法xy-235*乘法xy*2105…

在線課堂錄播直播管理系統SpringBoot+Vue

在線課堂錄播直播管理系統SpringBootVue 文章目錄 在線課堂錄播直播管理系統SpringBootVue共三個端&#xff1a;后端、后臺管理系統、前端&#xff0c;如要學習看評論區&#xff08;全部源碼、文檔、數據庫&#xff09;。內置功能一、前端二、后臺管理三、后端--代碼全有。四、…

數據結構—排序

8.排序 8.1排序的概念 什么是排序&#xff1f; 排序&#xff1a;將一組雜亂無章的數據按一定規律順序排列起來。即&#xff0c;將無序序列排成一個有序序列&#xff08;由小到大或由大到小&#xff09;的運算。 如果參加排序的數據結點包含多個數據域&#xff0c;那么排序往…

ElasticSearch刪除索引【真實案例】

文章目錄 背景分析解決遇到的問題 - 刪除超時報錯信息解決辦法1:調大超時時間解決辦法2:調大ES堆內存參考背景 項目中使用了ELK技術棧實現了日志管理,但是日志管理功能目前并沒有在生產上實際使用。 但ELK程序依然在運行,導致系統磁盤發生告警,剩余可用磁盤不足10%。 所以…

async和await

一&#xff0c;基本使用 其實就是之前學過的異步函數&#xff0c;異步編程在函數前寫一個ansyc&#xff0c;就轉化為異步函數&#xff0c;返回的是一個promise對象&#xff0c;于是就可以使用await關鍵字&#xff0c;可以把異步函數寫成同步函數的形式&#xff0c;極大地提高代…

LVS-DR的RS進行ARP抑制的原因和LVS持久連接配置

一.RS的ARP抑制 1.為什么要抑制 2.如何抑制 &#xff08;1&#xff09;修改/etc/sysctl.conf文件&#xff0c;增加以下內容 &#xff08;2&#xff09;命令行臨時設置 二.LVS持久連接 1.客戶端持久連接 2.端口持久連接 3.防火墻標記持久連接 一.RS的ARP抑制 1.為什么要…

Binary operator ‘*‘ cannot be applied to two ‘Double?‘ operands

在 swift 中聲明 Double 類型參數變量在進行運算處理時拋出了如下異常 Binary operator * cannot be applied to two Double? operands 情況一 參數類型不匹配,需將參數類型進行匹配 self.max height / (length * width) // 初始 self.max height / (length * Double(wid…

Java“牽手”根據關鍵詞搜索(分類搜索)京東商品列表頁面數據獲取方法,京東API實現批量商品數據抓取示例

京東商城是一個網上購物平臺&#xff0c;售賣各類商品&#xff0c;包括服裝、鞋類、家居用品、美妝產品、電子產品等。要獲取京東商品列表和商品詳情頁面數據&#xff0c;您可以通過開放平臺的接口或者直接訪問京東商城的網頁來獲取商品詳情信息。以下是兩種常用方法的介紹&…

學校信息管理系統說明文檔

目錄 0學生信息管理系統體驗教程. 4 0.0Student management異地打開方法&#xff1a;. 4 1. 管理系統設計需求分析. 6 1.1 需求介紹. 6 1.2功能需求. 6 1.2.1 學生信息錄入. 6 1.2.2 學生信息查詢. 6 1.2.3 權限管理. 6 1.2.4 添加學生信息驗證. 6 2.功能介紹. 7 2.1…

快速上手PyCharm指南

PyCharm簡介 PyCharm是一種Python IDE&#xff08;Integrated Development Environment&#xff0c;集成開發環境&#xff09;&#xff0c;帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具&#xff0c;比如調試、語法高亮、項目管理、代碼跳轉、智能提示、自動…

idea如何建立web項目???

我們需要用到tomcat&#xff0c;沒有下在著小伙伴&#xff0c;可以借鑒這篇博客&#xff1a; 如何正確下載tomcat&#xff1f;&#xff1f;&#xff1f;_明天更新的博客-CSDN博客 1.建立普通的Java項目。 2.簡單編寫index.jsp文件 3.添加tomcat 4.運行服務器 5.構建Servlet 最后…

嵌入式編譯FFmpeg6.0版本并且組合x264

下載直通車:我用的是6.0版本的 1.準備編譯: 2.進入ffmpeg源碼目錄&#xff0c;修改Makefile&#xff0c;添加編譯選項&#xff1a; CFLAGS -fPIC 不加會報錯 3.使用命令直接編譯 ./configure --cross-prefix/home/xxx/bin/arm-linux-gnueabihf- --enable-cross-compile --targ…

CodeSite for .NET Crack

CodeSite for .NET Crack CodeSite for.NET與Visual Studio集成&#xff0c;通過實時查看器日志記錄系統提供對代碼執行的更深入了解&#xff0c;該系統有助于在本地或遠程執行代碼時快速查找問題。超越傳統的斷點調試&#xff0c;在應用程序繼續運行時記錄應用程序的執行&…

vue使用jsplumb 流程圖

安裝jsPlumb庫&#xff1a;在Vue項目中使用npm或yarn安裝jsPlumb庫。 npm install jsplumb 創建一個Vue組件&#xff1a;創建一個Vue組件來容納jsPlumb的功能和呈現。 <template><div style"margin: 20px"><div style"margin: 20px">&l…