- ReactJS 教程
- ReactJS - 首頁
- ReactJS - 簡介
- ReactJS - 路線圖
- ReactJS - 安裝
- ReactJS - 特性
- ReactJS - 優點與缺點
- ReactJS - 架構
- ReactJS - 建立 React 應用
- ReactJS - JSX
- ReactJS - 元件
- ReactJS - 巢狀元件
- ReactJS - 使用新建立的元件
- ReactJS - 元件集合
- ReactJS - 樣式
- ReactJS - 屬性 (props)
- ReactJS - 使用屬性建立元件
- ReactJS - props 驗證
- ReactJS - 建構函式
- ReactJS - 元件生命週期
- ReactJS - 事件管理
- ReactJS - 建立一個事件感知元件
- ReactJS - 在 Expense Manager 應用中引入事件
- ReactJS - 狀態管理
- ReactJS - 狀態管理 API
- ReactJS - 無狀態元件
- ReactJS - 使用 React Hooks 進行狀態管理
- ReactJS - 使用 React Hooks 進行元件生命週期管理
- ReactJS - 佈局元件
- ReactJS - 分頁
- ReactJS - Material UI
- ReactJS - Http 客戶端程式設計
- ReactJS - 表單程式設計
- ReactJS - 受控元件
- ReactJS - 非受控元件
- ReactJS - Formik
- ReactJS - 條件渲染
- ReactJS - 列表
- ReactJS - Keys
- ReactJS - 路由
- ReactJS - Redux
- ReactJS - 動畫
- ReactJS - Bootstrap
- ReactJS - Map
- ReactJS - 表格
- ReactJS - 使用 Flux 管理狀態
- ReactJS - 測試
- ReactJS - CLI 命令
- ReactJS - 構建和部署
- ReactJS - 示例
- Hooks
- ReactJS - Hooks 簡介
- ReactJS - 使用 useState
- ReactJS - 使用 useEffect
- ReactJS - 使用 useContext
- ReactJS - 使用 useRef
- ReactJS - 使用 useReducer
- ReactJS - 使用 useCallback
- ReactJS - 使用 useMemo
- ReactJS - 自定義 Hooks
- ReactJS 高階
- ReactJS - 可訪問性
- ReactJS - 程式碼分割
- ReactJS - 上下文
- ReactJS - 錯誤邊界
- ReactJS - 轉發 Refs
- ReactJS - 碎片
- ReactJS - 高階元件
- ReactJS - 與其他庫整合
- ReactJS - 最佳化效能
- ReactJS - Profiler API
- ReactJS - 埠
- ReactJS - 無 ES6 ECMAScript 的 React
- ReactJS - 無 JSX 的 React
- ReactJS - 調和
- ReactJS - Refs 和 DOM
- ReactJS - 渲染 Props
- ReactJS - 靜態型別檢查
- ReactJS - 嚴格模式
- ReactJS - Web Components
- 其他概念
- ReactJS - 日期選擇器
- ReactJS - Helmet
- ReactJS - 內聯樣式
- ReactJS - PropTypes
- ReactJS - BrowserRouter
- ReactJS - DOM
- ReactJS - 走馬燈
- ReactJS - 圖示
- ReactJS - 表單元件
- ReactJS - 參考 API
- ReactJS 有用資源
- ReactJS - 快速指南
- ReactJS - 有用資源
- ReactJS - 討論
ReactJS - 路由
在 Web 應用中,路由是將 Web URL 繫結到 Web 應用中特定資源的過程。在 React 中,它是將 URL 繫結到元件。React 本身並不支援路由,因為它本質上是一個使用者介面庫。React 社群提供了許多第三方元件來處理 React 應用中的路由。讓我們學習 React Router,它是 React 應用的首選 路由庫。
安裝 React Router
讓我們學習如何在我們的 Expense Manager 應用中安裝 React Router 元件。
開啟命令提示符並轉到應用的根資料夾。
cd /go/to/expense/manager
使用以下命令安裝 react router。
npm install react-router-dom --save
React Router
React Router 提供了四個元件來管理 React 應用中的導航。
Router − Router 是頂級元件。它包含整個應用。
Link − 類似於 html 中的錨標記。它設定目標 url 以及參考文字。
<Link to="/">Home</Link>
這裡,to 屬性用於設定目標 url。
Route − 將目標 url 對映到元件。
巢狀路由
React Router 也支援巢狀路由。讓我們使用以下示例來理解巢狀路由以建立一個應用 −
Home.jsx
import React from "react";
function Home() {
return (
<div className="Home">
<h1>This is Home</h1>
</div>
);
}
export default Home;
About.jsx
import React from "react";
function About() {
return (
<div className="About">
<h1>AboutUs</h1>
<p>tutorialspoint India</p>
</div>
);
}
export default About;
Contact.jsx
import React from "react";
function Contact() {
return (
<div className="Contact">
<h1>Contact-Us</h1>
<p>
Tutorials Point India Private Limited, 4th Floor, Incor9 Building, Plot
No: 283/A, Kavuri Hills, Madhapur, Hyderabad, Telangana, INDIA-500081
</p>
</div>
);
}
export default Contact;
建立導航
讓我們在上面建立的元件之間引入導航。應用的最小螢幕如下所示 −
首頁 − 應用的登入或初始螢幕
關於 − 顯示應用的描述
聯絡 − 包含聯絡資訊
以下 Navigate.jsx 檔案的完整程式碼將包含從一個元件到另一個元件的連結。它將從登入頁面建立到其他元件的連結。
Navigate.jsx
import React from "react";
import { Outlet, Link } from "react-router-dom";
function Navigate() {
return (
<div>
<ul style={{ listStyle: "none" }}>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About-Us</Link>
</li>
<li>
<Link to="/contact">Contact-Us</Link>
</li>
</ul>
<Outlet />
</div>
);
}
export default Navigate;
接下來,在 src/components 資料夾下建立一個檔案 App.js 並開始編輯。App 元件的目的是在一個元件中處理所有螢幕。它將配置路由並啟用導航到所有其他元件。
我們將 React 庫和應用的其他元件匯入到 App.jsx。在最新版本的 React 中,我們只使用 <Route> 標記,而不是 Switch。這就是巢狀路由發生的地方。
App.jsx
import { Route, Routes, BrowserRouter } from "react-router-dom";
import "./App.css"
import Home from "./Router/Home";
import About from "./Router/About";
import Contact from "./Router/Contact";
import Navigate from "./Router/Navigate";
function App() {
return (
<div className="App">
<BrowserRouter>
<Routes>
<Route path="/" element={<Navigate />}>
<Route index element={<Home />} />
<Route path="About" element={<About />} />
<Route path="Contact" element={<Contact />} />
</Route>
</Routes>
</BrowserRouter>
</div>
);
}
export default App;
接下來,使用 npm 命令啟動應用。
npm start
接下來,開啟瀏覽器並在位址列中輸入 https://:3000 並按回車鍵。
嘗試導航連結並確認路由是否正常工作。
React Router 的優點
以下是 React Routing 的優點列表 −
如果渲染的資料量較少,則元件之間的路由會更快。
在不同元件之間切換時,實現動畫和過渡變得更容易。這提供了更好的使用者體驗。
允許在不重新整理頁面的情況下進行導航,因為它允許單頁 Web 或移動應用。