react-router6.x路由配置及導(dǎo)航詳解
react-router6.x路由配置及導(dǎo)航
項目使用Vite
進(jìn)行搭建
項目目錄
安裝
npm install react-router-dom
router/index.jsx
import Index from '@/pages/Index.jsx' import Home from '@/pages/Home/Home.jsx' import HomeLeft from '@/pages/Home/Home-left.jsx' import HomeRight from '@/pages/Home/Home-right.jsx' export default [ { path: "/", element: <Index />, }, { path: "/home", element: <Home />, children: [ { index: true, element: <HomeLeft /> }, { path: '/home/home-right', element: <HomeRight />, }] }, { path: "*", element: <Index /> }, ]
App.jsx
import './App.less' import React from 'react' import { useRoutes } from "react-router-dom" import router from "@/router" function App() { const element = useRoutes(router) return ( <div id='App'> {element} </div > ) } export default App
main.jsx
import React from 'react' import ReactDOM from 'react-dom' import { BrowserRouter } from "react-router-dom" import App from './App' ReactDOM.render( <BrowserRouter> <App /> </BrowserRouter>, document.getElementById('root') )
如果是嵌套路由需要加上<Outlet />
標(biāo)簽
Home.jsx
import React from 'react' import { Outlet, Link } from "react-router-dom" export default () => { return ( <div> <Link to="/home">左</Link> <Link to="/home/home-right">右</Link> <Outlet /> </div> ) }
路由導(dǎo)航
攜帶一個參數(shù)id=1到home
頁
import { Link, useNavigate } from "react-router-dom" export default () => { let navigate = useNavigate() return ( <div> <Link to="/home?id=1">a標(biāo)簽跳轉(zhuǎn)</Link> <button onClick={() => navigate("/home?id=1")}>編程式跳轉(zhuǎn)</button> </div> ) }
通過useSearchParams
可以獲取鏈接上的id
import React from 'react' import { Outlet, Link, useNavigate, useSearchParams } from "react-router-dom" export default () => { let navigate = useNavigate() let [searchParams] = useSearchParams() console.log(searchParams.get("id")) //1 return ( <div> <button onClick={() => navigate(-1)}>后退</button> <br /> <Link to="/home">左</Link> <Link to="/home/home-right">右</Link> <Outlet /> </div> ) }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解在create-react-app使用less與antd按需加載
這篇文章主要介紹了詳解在create-react-app使用less與antd按需加載,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12React+hook實現(xiàn)聯(lián)動模糊搜索
這篇文章主要為大家詳細(xì)介紹了如何利用React+hook+antd實現(xiàn)聯(lián)動模糊搜索功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02使用ReactJS實現(xiàn)tab頁切換、菜單欄切換、手風(fēng)琴切換和進(jìn)度條效果
這篇文章主要介紹了使用ReactJS實現(xiàn)tab頁切換、菜單欄切換、手風(fēng)琴切換和進(jìn)度條效果的相關(guān)資料,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2016-10-10React合成事件及Test Utilities在Facebook內(nèi)部進(jìn)行測試
這篇文章主要介紹了React合成事件及Test Utilities在Facebook內(nèi)部進(jìn)行測試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12詳解一個基于react+webpack的多頁面應(yīng)用配置
這篇文章主要介紹了詳解一個基于react+webpack的多頁面應(yīng)用配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01React中使用Axios發(fā)起POST請求提交文件方式
這篇文章主要介紹了React中使用Axios發(fā)起POST請求提交文件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02