react-router-dom@6獲取路由傳參

目錄

參數獲取

1、子路由形式攜帶

2、問號(?)形式參數

3、事件跳轉傳參


router/index.tsx

import App from "App";
import Home from "pages/Home";
import List from "pages/List";
import Detail from "pages/Detail";
import About from "pages/About";
import Login from "pages/Login";
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";const MyRouter = () => (<Router><Routes><Route path="/" element={<App />}><Route index element={<Home />}></Route><Route path="/list/" element={<List />}></Route><Route path="/list/:id" element={<List />}></Route><Route path="/detail" element={<Detail />}></Route><Route path="/about" element={<About />}></Route></Route><Route path="/login" element={<Login />}></Route></Routes></Router>
);export default MyRouter;

App.tsx

import React from "react";
import { Outlet, Link } from "react-router-dom";function App() {return (<div><ul><li><Link to={"/list"}>列表頁(不帶id)</Link></li><li><Link to={"/list/456"}>列表頁(帶id)</Link></li><li><Link to={"/detail?id=123"}>詳情頁</Link></li><li><Link to={"/about"}>關于我們</Link></li></ul><Outlet /></div>);
}export default App;

參數獲取

1、子路由形式攜帶

如上面代碼的點擊列表頁帶id?"/list/456" 跳轉列表頁

<Route path="/list/:id" element={<List />}></Route>

此時可以使用React Router Dom提供的Hook? useParams? 在列表頁獲取:

List.tsx

import React from "react";
import { useParams } from "react-router-dom";export default function List() {const { id } = useParams();return (<div><h1>列表 - id: {id}</h1><h1>yusir</h1></div>);
}

2、問號(?)形式參數

<Link to={"/detail?id=123"}>詳情頁</Link>

點擊攜帶參數進入詳情頁

此時可以使用React Router Dom提供的Hook? useSearchParams 在詳情頁獲取:

Detail.tsx

import React from "react";
import { useSearchParams } from "react-router-dom";export default function Detail() {const [params] = useSearchParams();console.log(params.getAll('id'))    // ['123']let myId = params.getAll("id")[0];return (<div><h1>Detail - id: {myId}</h1><h1>yusir</h1></div>);
}

3、事件跳轉傳參

事件中執行跳轉頁面,可以使用useNavigate這個hook進行跳轉。

?

?

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

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

相關文章

圖靈獎得主(二)

本文轉自&#xff1a;http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 1987年度的圖靈獎授予了IBM沃特森研究中心老資格的研究員 約翰科克(Johncocke)。 科克是從機械到數學、又從數學轉到 計算機方向上來的學者。…

jQuery效果之滑動

jQuery 滑動方法有三種&#xff1a;slideDown()、slideUp()、slideToggle()。 jQuery slideDown() 方法用于向下滑動元素&#xff0c; 語法&#xff1a;$(selector).slideDown(speed,callback); 可選的 speed 參數規定效果的時長。它可以取以下值&#xff1a;"slow"、…

Error: This command has to be run with superuser privileges (under the root user on most systems).

意思是錯誤&#xff1a;此命令必須以超級用戶權限&#xff08;在大多數系統上以root用戶權限&#xff09;運行。所以當前的用戶是普通用戶&#xff0c;需要切換為超級用戶&#xff08;root用戶&#xff09;先輸入在命令行中輸入 su root 然后會出現Password&#xff1a;&#…

圖靈獎得主(三)

本文轉自&#xff1a;本文轉自&#xff1a;http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 繼1979年度圖靈獎首次授予一位加拿大學者K.E.Iverson之后&#xff0c; 1989年度的圖靈 獎又一次授予加拿大學者威廉凱亨(Willia…

對微信公共號的理解

通過redirect_uri獲取code 通過code和appid 獲取access_token 進行鑒權 轉載于:https://www.cnblogs.com/zhouyideboke/p/11309752.html

vue3 v-model變化

概覽 就變化內容而言&#xff0c;此部分屬于高階內容&#xff1a; 非兼容&#xff1a;用于自定義組件時&#xff0c;v-model的 prop 和事件默認名稱已更改&#xff1a; prop&#xff1a;value -> modelValue&#xff1b;event&#xff1a;input -> update:modelValue&a…

圖靈獎得主(四)

本文轉自&#xff1a;本文轉自&#xff1a;本文轉自&#xff1a;http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 1991年度的圖靈獎授予了愛丁堡大學計算機科學系教授羅 賓米爾納(Robin Milner)。米爾納是繼M.V.Wilkes(1…

sql 日期類型空值等于 1900-01-01

SQL server 中查詢&#xff1a;select cast( as datetime) 結果&#xff1a;1900-01-01 00:00:00.000 做為判斷條件的話&#xff0c;要注意。不能直接 轉載于:https://www.cnblogs.com/meng9527/p/11311765.html

koa洋蔥模型

Koa 和 Express 都會使用到中間件 Express的中間件是順序執行&#xff0c;從第一個中間件執行到最后一個中間件&#xff0c;發出響應如上圖 Koa是從第一個中間件開始執行&#xff0c;遇到 next 進入下一個中間件&#xff0c;一直執行到最后一個中間件&#xff0c;在逆序&#x…

圖靈獎得主(五)

[1993]斯坦恩斯--"打工"帶來的機遇 斯坦恩斯是學數學出身的。1958年他在卡爾頓學院(Carlton College)取 得數學學士學位后進入普林斯頓大學研究生院&#xff0c;用了3年時間就 取得博士學位&#xff0c;其博士論文課題是關于博奕論的。 斯坦恩斯跨進計算機科…

koa后端允許跨域

舉個例子 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widthdevice-width…

python面向對象之繼承

面向對象之繼承 什么是面向對象的繼承&#xff1f; 繼承&#xff08;英語&#xff1a;inheritance&#xff09;是面向對象軟件技術當中的一個概念。如果一個類別A“繼承自”另一個類別B&#xff0c;就把這個A稱 為“B的子類別”&#xff0c;而把B稱為“A的父類別”也可以稱“B是…

美國正面臨“人才泡沫”破裂危機?

&#xff08;Jason Lane和Kevin Kinser/文&#xff09;最近&#xff0c;與教育有關的種種問題在美國社會引起了廣泛討論。首先巨額的學生貸款問題&#xff1a;根據美聯儲紐約分行在2012年11月發布的一份報告&#xff0c;全美學生貸款總額已經達到420億美元&#xff0c;其中新增…

ngrx學習筆記

什么是ngrx ngrx是Angular基于Rxjs的狀態管理&#xff0c;保存了Redux的核心概念&#xff0c;并使用RxJs擴展的Redux實現。使用Observable來簡化監聽事件和訂閱等操作。 在看這篇文章之前&#xff0c;已經假設你已了解rxjs和redux。 有條件的話請查看官方文檔進行學習理解。 所…

解決RM刪除沒有釋放空間問題

www172-18-8-12 log]$ df -h Filesystem Size Used Avail Use% Mounted on/dev/vda1 120G 101G 20G 84% /devtmpfs 7.8G 0 7.8G 0% /devtmpfs 7.8G 0 7.8G 0% /dev/shmtmpfs 7.8G 601M 7.2G 8% /run 我刪除文件時&#xff0c;直接用的rm 沒有加參數lf,結果空間沒有釋放 文件已經…

.slice(0)

高手代碼里看到.slice(0)&#xff0c;查了下這樣寫的好處&#xff1a; 1.對原數組進行深拷貝&#xff0c;這樣進行一系列操作的時候就不影響原數組了&#xff1b; 2.將類數組對象轉化為真正的數組對象&#xff1a;var anchorArray [].slice.call(document.getElementsByTagN…

在線課程學習、科研科技視頻網站

最近在網絡學習課程&#xff0c;發現很多在線課程網站&#xff0c;與大家分享一下。本人新浪博客&#xff1a;http://blog.sina.com.cn/u/1240088994 公開課課程圖譜http://coursegraph.com/navigation/ 1. 網易公開課 http://open.163.com/&#xff1b; 網易TED http://…

對html2canvas的研究

介紹 該腳本允許您直接在用戶瀏覽器上截取網頁或部分網頁的“屏幕截圖”。屏幕截圖基于DOM&#xff0c;因此它可能不是真實表示的100&#xff05;準確&#xff0c;因為它沒有制作實際的屏幕截圖&#xff0c;而是根據頁面上可用的信息構建屏幕截圖。 這個怎么運作 該腳本遍歷其加…

[Vue warn]: You are using the runtime-only build of Vue 牽扯到Vue runtime-compiler與runtime-only區別

[Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. 1. Vue的編譯渲染過程 template --> ast --> render函數 -…

親歷2013年TED大會:全球最潮靈感大會

本文轉自&#xff1a;http://mooc.guokr.com/opinion/436837/ 本文由《外灘畫報》供稿 文/華琪&#xff08;發自美國&#xff09; 編輯/吳慧雯 什么是TED的世界&#xff1f;在這里&#xff0c;你可以輕易發現各種名人出沒的痕跡&#xff0c;和各個領域里最具遠見卓識和創造…