在React應用中使用Reach Router的快速入門
在上一個項目中,我使用了到達路由器我認為這是在React應用程序中進行路由的最簡單方法。
我認為比這容易得多反應路由器,這是我過去使用的另一台路由器。
這是一個5分鐘的教程,以了解其基礎知識。
安裝
首先,使用安裝
npm install @reach/router
如果
@
語法對您來說是新的,它是一個npm功能,允許有作用域的程序包。換句話說,一個名稱空間。
接下來,將其導入您的項目中。
import { Router } from '@reach/router'
基本用法
我在頂級React文件中使用它,index.js
在一個創建反應應用安裝,包裝要顯示的所有組件:
ReactDOM.render(
<Router>
<Form path="/" />
<PrivateArea path="/private-area" />
</Router>,
document.getElementById('root')
)
這path
我添加到組件的屬性允許我為它們設置路徑。
換句話說,當我在瀏覽器URL欄中鍵入該路徑時,“到達路由器”會向我顯示該特定組件。
這/
path是索引路由,當您未在應用程序域旁邊設置URL /路徑時顯示。換句話說,就是“主頁”。
默認路線
當用戶訪問與任何路由都不匹配的URL時,默認情況下,“到達路由器”會將其重定向到/
路線。您可以添加一個default
路由以處理這種情況並顯示一條不錯的“ 404”消息:
<Router>
<Form path="/" />
<PrivateArea path="/private-area" />
<NotFound default />
</Router>
以編程方式更改路線
使用navigate
功能以編程方式更改您應用中的路線:
import { navigate } from '@reach/router'
navigate('/private-area')
鏈接到JSX中的路線
使用Link
組件以使用JSX鏈接到您的路線:
import { Link } from '@reach/router'
<Link to="/">Home</Link>
<Link to="/private-area">Private Area</Link>
網址參數
使用添加參數:param
句法:
<Router>
<User path="users/:userId" />
</Router>
現在,在這個假設的用戶組件中,我們可以userId
作為道具:
const User = ({ userId }) => (
<p>User {userId}</p>
)
嵌套路線
我向您展示瞭如何在頂級React文件中以這種方式定義路由:
<Router>
<Form path="/" />
<PrivateArea path="/private-area" />
</Router>
您可以定義嵌套路線:
<Router>
<Form path="/" />
<PrivateArea path="/private-area">
<User path=":userId" />
</PrivateArea>
</Router>
所以現在您可以擁有/private-area/23232
鏈接指向用戶組件,並傳遞userId
23232
。
您還可以選擇允許組件在其中定義其自己的路線。您使用/*
路由後的通配符:
<Router>
<Form path="/" />
<PrivateArea path="/private-area/*" />
</Router>
然後,您可以在組件內部再次導入Router,並定義其自己的子路由集:
//component PrivateArea
<Router>
<User path="/:userId" />
</router>
任何路線使用/private-area/something
將由User組件處理,路線之後的部分將作為其組件發送userId
支柱。
為了顯示一些東西/private-area
現在,您還需要添加一個/
中的處理程序PrivateArea
成分:
//component PrivateArea
<Router>
<User path="/:userId" />
<PrivateAreaDashboard path="/" />
</router>
免費下載我的反應手冊
更多反應教程:
- 一個React簡單的應用示例:通過API獲取GitHub用戶信息
- 用React構建一個簡單的計數器
- 用於React開發的VS Code設置
- 如何通過React Router將道具傳遞給子組件
- 使用Electron和React創建一個應用
- 教程:使用React創建電子表格
- 學習React的路線圖
- 了解如何使用Redux
- JSX入門
- 樣式化的組件
- Redux Saga簡介
- React Router簡介
- React簡介
- 反應組件
- 虛擬DOM
- 反應事件
- 反應狀態
- 反應道具
- 反應片段
- React Context API
- 反應PropTypes
- 反應概念:聲明式
- React:如何在點擊時顯示其他組件
- 如何在React JSX內部循環
- 道具與狀態在React中
- 您應該使用jQuery還是React?
- 使用React需要知道多少JavaScript?
- 蓋茨比介紹
- 如何在React中引用DOM元素
- React中的單向數據流
- 反應高階組件
- 反應生命週期事件
- 反應概念:不變性
- 反應概念:純度
- React鉤子簡介
- create-react-app簡介
- 反應概念:組成
- React:演示組件與容器組件
- React中的代碼拆分
- 使用React進行服務器端渲染
- 如何安裝React
- React中的CSS
- 在React中使用SASS
- 在React中處理表單
- 反應嚴格模式
- 反應門戶
- 反應渲染道具
- 測試React組件
- 如何在React中將參數傳遞給事件處理程序
- 如何處理React中的錯誤
- 如何在JSX中返回多個元素
- React中的條件渲染
- 反應,如何將道具轉移到子組件
- 如何在React中獲取輸入元素的值
- 如何使用useState React鉤子
- 如何使用useCallback React鉤子
- 如何使用useEffect React鉤子
- 如何使用useMemo React鉤子
- 如何使用useRef React鉤子
- 如何使用useContext React鉤子
- 如何使用useReducer React鉤子
- 如何將您的React應用程序連接到相同來源的後端
- 到達路由器教程
- 如何使用React Developer Tools
- 如何學習React
- 如何調試React應用程序
- 如何在React中呈現HTML
- 如何修復`dangerouslySetInnerHTML`與React中的錯誤不匹配
- 我如何解決React登錄表單狀態和瀏覽器自動填充的問題
- 如何在本地主機上的React應用程序中配置HTTPS
- 如何修復React中的“在渲染其他組件時無法更新組件”錯誤
- 我可以在條件內使用React掛鉤嗎?
- 將useState與對像一起使用:如何更新
- 如何使用React和Tailwind在代碼塊中移動
- React,添加到DOM時將焦點放在React中的一個項目上
- 反應,在doubleclick上編輯文本