」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 使用 React Router 進行導航 React Js 第一部分 React 應用程式中的路由指南

使用 React Router 進行導航 React Js 第一部分 React 應用程式中的路由指南

發佈於2024-11-06
瀏覽:987

Navigating with React Router React Js Part A Guide to Routing in React Applications

歡迎回到我們的 React 系列!在先前的文章中,我們介紹了元件、狀態、道具和事件處理等基本概念。現在,是時候使用 React Router 探索 React 應用程式中的路由了。路由允許您在應用程式內的不同視圖或元件之間導航,從而創建無縫的使用者體驗? .

什麼是 React 路由器?

React Router 是一個功能強大的函式庫,可以在 React 應用程式中實現路由。它允許您在應用程式中定義多個路由並根據 URL 路徑呈現特定元件。此功能對於建立導覽不需要重新載入整頁的單頁應用程式 (SPA) 至關重要。

安裝 React Router
首先,您需要安裝 React Router。您可以使用 npm 來執行此操作:

npm install react-router-dom

設定基本路由

讓我們設定一個具有多個路由的簡單應用程式。我們將創建一個帶有主頁、關於頁面和聯絡頁面的應用程式。

1.建立基本元件
首先,建立三個元件:主頁、關於和聯絡方式。

// Home.js
import React from 'react';

const Home = () => {
    return 

Home Page

; }; export default Home; // About.js import React from 'react'; const About = () => { return

About Page

; }; export default About; // Contact.js import React from 'react'; const Contact = () => { return

Contact Page

; }; export default Contact;

2.設定路由器
現在,讓我們在主應用程式檔案(通常是 App.js)中設定路由器。

import React from 'react';
import { BrowserRouter as Router, Route, Switch, Link } from 'react-router-dom';
import Home from './Home';
import About from './About';
import Contact from './Contact';

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

export default App;

解釋:

  • Router:BrowserRouter元件包裝了整個應用程序,實現路由。
  • Link:Link 元件用於建立導航鏈接,無需重新加載頁面即可更改 URL。
  • Route:Route元件定義路徑以及路徑匹配時要渲染的元件。
  • Switch:Switch元件確保一次只渲染一條路線。

在頁面之間導航
設定完成後,您現在可以透過點擊導覽功能表中的連結在主頁、關於和聯絡頁面之間導覽。 React Router 將處理 URL 變更並渲染適當的元件,而無需刷新頁面。

路由參數
您也可以使用參數定義路由,從而允許傳遞動態資料。例如,我們建立一個 User 元件,根據 URL 中的使用者 ID 顯示使用者資訊。

1.建立使用者元件
使用者.js:

import React from 'react';
import { useParams } from 'react-router-dom';

const User = () => {
    const { userId } = useParams();
    return 

User ID: {userId}

; }; export default User;

2.更新路由器
在 App.js 中新增 User 元件的路由:


嵌套路由

React Router 也支援嵌套路由,它允許您在父元件中渲染子路由。這對於建立複雜的佈局很有用。

嵌套路由範例:

  1. 建立具有嵌套路由的 Dashboard 元件:
// Dashboard.js
import React from 'react';
import { Route, Link, Switch } from 'react-router-dom';
import Settings from './Settings';
import Profile from './Profile';

const Dashboard = () => {
    return (
        

Dashboard

); }; export default Dashboard;
  1. 更新您的 App.js 以包含儀表板路線:

現在,導覽至 /dashboard/profile 或 /dashboard/settings 將在儀表板中呈現對應的元件。


在這篇文章中,我們探討如何使用 React Router 在 React 應用程式中實現路由。我們介紹了設定基本路由、在頁面之間導航、使用路由參數以及建立巢狀路由。

利用這些概念,您可以為 React 應用程式建立結構化導航系統,從而增強使用者體驗並實現動態內容渲染。

在下一篇文章中,我們將深入研究 React Hooks 的使用,重點關注 useEffect 以及它如何管理功能元件中的副作用。敬請關注!

版本聲明 本文轉載於:https://dev.to/kyydev/navigating-with-react-router-react-js-part-4-a-guide-to-routing-in-react-applications-1ikb?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 免費接龍
    免費接龍
    很久以前,在同一個星系中,我開始嘗試製作 Freecell,作為學習 Angular 1.3 的一種方式。 我已經走了這麼遠,然後我就被其他事情分散了注意力,就像副項目一樣。 我最近有一些空閒時間(我知道,我也沒想到),所以我想我應該再試一次。 我基本上是從頭開始,因為我對 Angular 1...
    程式設計 發佈於2024-11-06
  • 為什麼 PHP 中的函數呼叫不能使用屬性預設值?
    為什麼 PHP 中的函數呼叫不能使用屬性預設值?
    無法在PHP 屬性預設值中呼叫函數[問題]儘管有程式設計經驗,但新手PHP中的屬性預設錯誤令我困惑。代碼:class Foo { public $path = array( realpath(".") ); }產生文法錯誤。但是,以下內容可以無縫運...
    程式設計 發佈於2024-11-06
  • 棄用 `ereg_replace` 後,如何將多個空格替換為單一空格?
    棄用 `ereg_replace` 後,如何將多個空格替換為單一空格?
    用單一空格取代多個空格:棄用ereg_replace雖然使用ereg_replace 以單一空格取代多個空格看起來很簡單,但它已被棄用。因此,您在嘗試使用它時可能會遇到錯誤。本文提出了一種替代解決方案。 遷移到 preg_replace()要取代 ereg_replace,請切換到 preg_rep...
    程式設計 發佈於2024-11-06
  • 如何開始自由工作?
    如何開始自由工作?
    您是否正在努力透過 Upwork 賺錢?別擔心!我曾經去過那裡,我來這裡是為了分享我將這些掙扎轉化為成功的旅程。憑藉奉獻精神和正確的方法,您可以開始在 Upwork 上賺錢,並打開通往一系列機會的大門。讓我們深入探討最大化您的收入潛力的關鍵步驟。 掌握技巧遊戲 在 Upwork 上...
    程式設計 發佈於2024-11-06
  • 如何將 8 個字元作為打包單精度浮點數載入到 __m256 變數中?
    如何將 8 個字元作為打包單精度浮點數載入到 __m256 變數中?
    將8 個字元從記憶體載入到__m256 變數中作為打包單精度浮點數為了優化高斯模糊演算法,您尋求用__m256 內在變數取代浮點緩衝區的使用。本問題旨在確定此任務的最佳指令。 AVX2 架構說明:利用 PMOVZX 將字元零擴展為 32 位元256b 暫存器中的整數。 使用 VCVTDQ2PS 就地...
    程式設計 發佈於2024-11-06
  • 如何在Python中尋找字串中子字串的第n次出現?
    如何在Python中尋找字串中子字串的第n次出現?
    查找字串中某個子字串第n 次出現識別某個子字串第n 次出現對應的索引為各種程式場景中經常出現的任務。在Python中,沒有專門為此目的而設計的內建函數。但是,可以採用多種方法來實現此結果。 一種簡單的方法是使用循環來迭代字串併計算子字串的出現次數。起始索引被初始化為第一次出現的結果,循環繼續直到找到...
    程式設計 發佈於2024-11-06
  • 程式語言解釋
    程式語言解釋
    ? 注意:缩略图是使用生成的 ComfyUI 帮助下的 Flux Schnell 模型; 本文是在 NI - 自然智能 的帮助下撰写的 ? 没有时间阅读? - 观看我们创建的视频: 集会 ? 最初所有程序都是用二进制编写的 - 所谓的汇编 编程语言。你从字面上指示CPU在内做什么 ...
    程式設計 發佈於2024-11-06
  • Go Context — TODO() 與 Background() 不再令人困惑!
    Go Context — TODO() 與 Background() 不再令人困惑!
    在 Go 中,上下文包有助於管理請求範圍的值、取消訊號和截止日期。 啟動上下文的兩種常見方法是 context.TODO() 和 context.Background()。 儘管它們的行為相似,但它們的目的不同。 上下文.背景() 當您不需要任何特殊處理(例如取消或截止日期...
    程式設計 發佈於2024-11-06
  • 如何偵測 CMake 中的 C++11 編譯器支援?
    如何偵測 CMake 中的 C++11 編譯器支援?
    CMake 中C 11 編譯器支援的檢測概述在本指南中,我們探討自動偵測編譯器是否支援C 11 的方法CMake,提供對最新和以前CMake 版本的全面分析。 CMake 3.1.0 及更高版本CMake 3.1.0 版本引進了一個強大的功能:偵測編譯器。這是透過cmake_minimum_requ...
    程式設計 發佈於2024-11-06
  • 基於屬性的測試:深入探討現代測試方法
    基於屬性的測試:深入探討現代測試方法
    基于属性的测试是一种强大的测试方法,它侧重于软件的属性或特征,而不是特定的输入输出情况。与手动定义特定测试用例的传统测试不同,基于属性的测试会自动生成各种输入来验证某些属性是否始终成立。这种方法可以更广泛地探索潜在场景,使其成为发现隐藏错误并确保稳健的软件行为的有效方法。 测试方法的演变 从传统的...
    程式設計 發佈於2024-11-06
  • 為開發人員和安全團隊提供主動的 AppSec 持續漏洞管理
    為開發人員和安全團隊提供主動的 AppSec 持續漏洞管理
    现代软件开发环境中哪些日益增长的网络安全风险让 CISO 忙碌? 开发人员和安全团队面临着越来越多的威胁,从复杂的开源和供应商控制的供应链攻击到 AI 生成的代码引入的漏洞,例如提示注入和 GitHub Copilot 的代码安全性差。现代应用程序通常严重依赖开源组件(例如在 npm、PyPI 或 ...
    程式設計 發佈於2024-11-06
  • 如何使用 React 對 MeteorJS 中的 Bootstrap Spacing 實用程式類別進行故障排除?
    如何使用 React 對 MeteorJS 中的 Bootstrap Spacing 實用程式類別進行故障排除?
    在 Bootstrap 中使用間距實用程式類別在 Bootstrap 中,間距實用程式類別可讓您輕鬆控制元素周圍的間距。但是,如果您在使用它們時遇到問題,這裡有一個指南可以幫助您解決。 更新的間距語法(Bootstrap 4 和 5)Bootstrap 4引入了間距實用程式類別的簡化語法:邊距:m{...
    程式設計 發佈於2024-11-06
  • 如何在Python中設定子程序的工作目錄?
    如何在Python中設定子程序的工作目錄?
    如何在Python中設定子程序的工作目錄在Python中,subprocess.Popen()函數允許您在Py thon中執行指令子程序。一個常見的要求是指定子程序的工作目錄。 問題:如何使用 subprocess.Popen() 設定子程序的工作目錄? 答案:要指定工作目錄,請使用 subproc...
    程式設計 發佈於2024-11-06
  • Pandas 什麼時候創建視圖而不是副本?
    Pandas 什麼時候創建視圖而不是副本?
    Pandas 視圖與副本生成規則Pandas 在決定 DataFrame 上的切片操作是否產生視圖或結果時採用特定規則複製。透過了解這些規則,您可以優化資料操作並避免意外行為。 從始終產生副本的操作開始:所有操作,除了那些專門設計用於修改的操作就地 DataFrame,創建副本。 只有某些操作支援 ...
    程式設計 發佈於2024-11-06
  • 使用代理伺服器解鎖地理限制網站
    使用代理伺服器解鎖地理限制網站
    利用代理服务器绕过区域封锁是一种常用且有效的方法。代理服务器作为中介,可以隐藏用户的真实IP地址,使用户的请求看起来像是来自代理服务器的地理位置,从而绕过区域封锁。 使用代理服务器绕过区域封锁的关键步骤:‌‌ 选择合适的代理服务器‌:根据目标区域的网络环境和遮挡情况,选择覆盖该区域的...
    程式設計 發佈於2024-11-06

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3