ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ReactRouterDom常见问题汇总

2022-01-05 11:37:06  阅读:144  来源: 互联网

标签:常见问题 return .. Component App 汇总 react import ReactRouterDom


react-router-dom v6.0

基础用法

import React from "react";
import { BrowserRouter as Router, Route, Routes } from "react-router-dom";

import "../styles/global.css";

import Layout from "../containers/Layout";
import Home from "../pages/Home";
import Login from "../containers/Login";
import RecoveryPassword from "../containers/RecoveryPassword";
import NotFound from "../pages/NotFound";

const App = () => {
  return (
    <Router>
      <Layout>
        <Routes>
          <Route exact path="/" element={<Home />} />
          <Route exact path="/login" element={<Login />} />
          <Route
            exact
            path="/recovery-password"
            element={<RecoveryPassword />}
          />
          <Route path="*" element={<NotFound />} />
        </Routes>
      </Layout>
    </Router>
  );
};

export default App;

中类组件的用法

自定义 withRouter 包装类组件

// in hocs.js
function withNavigation(Component) {
  return (props) => <Component {...props} navigate={useNavigate()} />;
}

function withParams(Component) {
  return (props) => <Component {...props} params={useParams()} />;
}

// in BlogPost.js
class BlogPost extends React.Component {
  render() {
    let { id } = this.props.params;
    // ...
  }
}

export default withParams(BlogPost);

嵌套路由

App.jsx

const App = () => {
  return (
    <Provider store={store}>
      <Router>
        <Routes>
          <Route path="/login" element={<Login />}></Route>
          <Route path="/register" element={<Register />}></Route>
          {/* 嵌套路由 */}
          <Route path="/*" element={<Main />}>
            <Route path="userInfo" element={<UserInfo />}>
              <Route path="detail" element={<UserDetail />}></Route>
            </Route>
            <Route path="test" element={<Test />}></Route>
          </Route>
          <Route path="*" element={<NotFound />} />
        </Routes>
      </Router>
    </Provider>
  );
};

export default App;

main.jsx

import React, { Component } from "react";
import { Outlet } from "react-router-dom";

export default class Main extends Component {
  render() {
    return (
      <div>
        Main
        <Outlet />
      </div>
    );
  }
}

标签:常见问题,return,..,Component,App,汇总,react,import,ReactRouterDom
来源: https://www.cnblogs.com/bitbw/p/15766107.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有