三合一网站模板,网站权重优化方式,外贸流程优化,营销型网站怎么收费1. 安装依赖
pnpm add react-router-dom
2. 基本的路由设置#xff08;BrowserRouter#xff09;
在 main.tsx 入口文件中使用BrowserRouter组件来包裹整个应用。它会监听浏览器的 URL 变化。
import { StrictMode } from react;import { createRoot } from …1. 安装依赖
pnpm add react-router-dom
2. 基本的路由设置BrowserRouter
在 main.tsx 入口文件中使用BrowserRouter组件来包裹整个应用。它会监听浏览器的 URL 变化。
import { StrictMode } from react;import { createRoot } from react-dom/client;import { BrowserRouter } from react-router-dom;import App from ./App.tsx;createRoot(document.getElementById(root)!).render(BrowserRouterApp //BrowserRouter)
3. 定义路由和组件Routes 和 Route
在根组件 App.tsx 定义路由和对应组件。
import { Routes, Route } from react-router-dom;import Home from ./components/Home;import About from ./components/About;import Contact from ./components/Contact;const App () {return (divRoutesRoute path/ element{Home /} /Route path/about element{About /} /Route path/contact element{Contact /} //Routes/div);};
4. 导航链接Link
在不刷新整个页面的情况下改变 URL 并触发相应的路由。
import React from react;import { Link } from react-router-dom;const Home () {return (divh1Home Page/h1Link to/aboutAbout/LinkLink to/contactContact/Link/div);};
5. 嵌套路由
例如假设About组件内部还有子路由如About组件中有Team和History两个子部分。
// App.jsimport { Routes, Route } from react-router-dom;import Home from ./components/Home;import About from ./components/About;import Contact from ./components/Contact;const App () {return (divRoutesRoute path/ element{Home /} /Route path/about element{About /}Route pathteam element{Team /} /Route pathhistory element{History /} //RouteRoute path/contact element{Contact /} //Routes/div);};
然后在About组件中需要使用Outlet组件来显示子路由对应的组件。
import React from react;import { Outlet } from react-router-dom;const About () {return (divh1About Page/h1Outlet //div);};
6. 编程式导航useNavigate
使用useNavigate钩子函数。
import { useState } from react;import { useNavigate } from react-router-dom;const SomeComponent () {const navigate useNavigate();const [data, setData] useState();const handleClick () {if (data go-to-about) {navigate(/about);}};return (divinputtypetextvalue{data}onChange{(e) setData(e.target.value)}/button onClick{handleClick}Navigate/button/div);};