react-router-dom v6版本跳转路径的实现方法
作者:前端学习冲冲冲
这篇文章主要介绍了react-router-dom v6版本跳转路径的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
react-router-dom v6版本跳转路径
说明
在V5中,可以通过withRouter包裹当前组件使得当前组件可以拥有其根组件的props属性,也即可以拿到history对象等
但在V6版本中,使用了useNavigate代替withRouter,当需要路由跳转时,可以更快捷的使用
使用示例
1.引入useNavigate并且定义一个navigate
2.在需要点击跳转路由的地方,直接在点击事件中使用navigate(),括号内加入需要跳转的路由path即可正常跳转
react-router-domV6版本在js文件使用history跳转
1.在 utils 下面 创建 history.js
// utils/history.js import { createBrowserHistory } from "history"; export const customHistory = createBrowserHistory()
2. 在 App.tsx 中引入 unstable_HistoryRouter 和 customHistory。
3.在 unstable_HistoryRouter 组件的 history 属性上把 customHistory 传递过去。
// App.tsx import { unstable_HistoryRouter as Router, Route, Routes, Navigate } from 'react-router-dom'; import Layout from '@/pages/Layout'; import Login from './pages/Login'; import {customHistory} from '@/utils/history' import './App.scss'; function App() { return ( <div className="App"> <Router history={customHistory}> <Routes> <Route path="/" element={<Navigate to="/home" />}></Route> <Route path="/home" element={<Layout />}></Route> <Route path="/login" element={<Login />}></Route> </Routes> </Router> </div> ); } export default App;
4.然后,就可以在非组件环境下通过 customHistory 进行路由跳转等操作了。比如,在 http.js 。
import { customHistory } from '@/utils/history' customHistory.push('/login') <unstable_HistoryRouter>
提供一个将history作为prop的实例对象。可以使用它在非React的上下文环境或全局变量中使用Router。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。