react-router-dom使用指南

1.安装react-router-dom

yarn add rect-router-dom

2.配置路由项(集中管理)

    在src目录下创建router目录,之后在router目录下创建index.tsx文件,注意文件后缀为tsx,写入代码如下。

import {RouteObject} from 'react-router-dom'
import MusicPage from '@/page/music/MusicPage'
import App from '@/App'
const config:RouteObject[] = [
    {
        path:"/",//路由路径
        element:<App/>,//与路由对应的组件
        children:[
            {
                index:true,//表示该组件为默认项
                element:<MusicPage/>
            }
        ],
    },
]
export default config

 3.配置路由模式

      路由模式共有两种,分别为 历史(BrowserRouter)和 哈希(HashRouter)。在使用时需要先引入RouterProvider组件。并在RouterProvider组件的router参数提供对应模式的方法。

import React from 'react'
import ReactDOM from 'react-dom/client'
import './index.css'

//哈希模式createHashRouter,历史模式createBrowserRouter
import {RouterProvider,createHashRouter} from "react-router-dom" 

import config from './router/index.tsx' //配置项

ReactDOM.createRoot(document.getElementById('root')!).render(
  <React.StrictMode>
      <RouterProvider router={createHashRouter(config)}/>
  </React.StrictMode>,
)

4.配置子路由出口

 方法很简单,使用 Outlet 组件即可。

import "./App.css";
import { Outlet } from "react-router-dom";
function App() {
  return (
    <>
      <Outlet />
    </>
  );
}
export default App;

5.跳转路由

跳转路由的方式有以下几种

  1.link组件
import { Link } from 'react-router-dom';  
  
function App() {  
  return (  
    <div>  
      <Link to="/">主页</Link>  
    </div>  
  );  
}

     表现效果类似a标签,只不过用于路由跳转。

  2.NavLink组件
import { NavLink } from 'react-router-dom';  
  
function App() {  
  return (  
    <div>  
      <NavLink to="/">主页</NavLink>  
    </div>  
  );  
}

      类似于 Link 组件,但具有更多的激活状态属性。可以自定义被选中时应用的样式,通过 activeClassName 属性来设置被选中时被附加的 class,以及通过 activeStyle 属性来配置被选中时应用的样式。

   3.编程式导航-useNavigate
import { useNavigate} from 'react-router-dom';  
  
function MyComponent() {  
  const history = useNavigate();  
  
  const handleClick = () => {  
    history('/');  //填入路由地址即可
  };  
  
  return (  
    <button onClick={handleClick}>主页</button>  
  );  
}

   在代码逻辑中调用,创建对象后,传入路径参数即可。

   


附:react-router-dom 文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值