最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React-router?v6在Class組件和非組件代碼中的正確使用

 更新時(shí)間:2024年03月14日 10:06:03   作者:超喜歡你呦  
這篇文章主要介紹了React-router?v6在Class組件和非組件代碼中的正確使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

最近內(nèi)部正在開發(fā)的 react 項(xiàng)目 react-router 全線升級到了 v6 版本

v6 版本中很多 API 進(jìn)行了重構(gòu)變更,導(dǎo)致很多舊寫法失效

下面記錄一下 history 模塊在 v6 中的用法

在封裝的request等非組件代碼中如何使用 history 進(jìn)行路由?

1. history路由用法

createBrowserHistory() 創(chuàng)建的 history 與新的 unstable_HistoryRouter API進(jìn)行上下文綁定

注意:

在 v6 版本中如果不對上下文進(jìn)行綁定直接使用 createBrowserHistory() 創(chuàng)建的 history 進(jìn)行編程式路由操作

將出現(xiàn)路由變化 UI 不變化的問題,hashhistory 模式同理。

import { createBrowserHistory } from 'history';
import { unstable_HistoryRouter as HistoryRouter } from 'react-router-dom';

let history = createBrowserHistory();

function App() {
  return (
    <HistoryRouter history={history}>
      // The rest of your app
    </HistoryRouter>
  );
}

history.push("/foo");

2. hash路由用法

import HashHistory from 'history/hash';
import { unstable_HistoryRouter as HistoryRouter } from 'react-router-dom';

function App() {
  return (
    <HistoryRouter history={HashHistory}>
      // The rest of your app
    </HistoryRouter>
  );
}

history.push("/foo");

項(xiàng)目升級了v6版本,怎么兼容舊的Class組件?

使用新的 hooks API封裝高階組件包裹 class 組件進(jìn)行 props 的傳遞

import {
  useLocation,
  useNavigate,
  useParams,
} from "react-router-dom";

function withRouter(Component) {
  function ComponentWithRouterProp(props) {
    let location = useLocation();
    let navigate = useNavigate();
    let params = useParams();
    return (
      <Component
        {...props}
        router={{ location, navigate, params }}
      />
    );
  }

  return ComponentWithRouterProp;
}

// class components
@withRouter()
class YouClassComponent extends React.Component {}
export default YouClassComponent

// or

class YouClassComponent extends React.Component {}
export default withRouter(YouClassComponent)

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Remix后臺開發(fā)之remix-antd-admin配置過程

    Remix后臺開發(fā)之remix-antd-admin配置過程

    這篇文章主要為大家介紹了Remix后臺開發(fā)之remix-antd-admin配置過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 詳解Jotai Immer如何實(shí)現(xiàn)undo redo功能示例詳解

    詳解Jotai Immer如何實(shí)現(xiàn)undo redo功能示例詳解

    這篇文章主要為大家介紹了詳解Jotai Immer如何實(shí)現(xiàn)undo redo功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • react實(shí)現(xiàn)記錄拖動排序

    react實(shí)現(xiàn)記錄拖動排序

    這篇文章主要介紹了react實(shí)現(xiàn)記錄拖動排序的相關(guān)資料,需要的朋友可以參考下
    2023-07-07
  • React Native中TabBarIOS的簡單使用方法示例

    React Native中TabBarIOS的簡單使用方法示例

    最近在學(xué)習(xí)過程中遇到了很多問題,TabBarIOS的使用就是一個,所以下面這篇文章主要給大家介紹了關(guān)于React Native中TabBarIOS簡單使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-10-10
  • react如何解決Hooks閉包陷阱解決方案

    react如何解決Hooks閉包陷阱解決方案

    在React中使用Hooks時(shí),開發(fā)者可能會遇到一些常見的坑點(diǎn),這篇文章主要介紹了react如何解決Hooks閉包陷阱的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-05-05
  • 深入理解React虛擬Dom

    深入理解React虛擬Dom

    虛擬DOM是一種輕量級的JavaScript對象,用于描述真實(shí)網(wǎng)頁的DOM結(jié)構(gòu)和屬性,存在于內(nèi)存中,本文就來詳細(xì)的介紹React虛擬Dom的實(shí)現(xiàn),感興趣的可以了解一下
    2026-01-01
  • React-Router如何進(jìn)行頁面權(quán)限管理的方法

    React-Router如何進(jìn)行頁面權(quán)限管理的方法

    本篇文章主要介紹了React-Router如何進(jìn)行頁面權(quán)限管理的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Parcel 打包示例(React HelloWorld)

    Parcel 打包示例(React HelloWorld)

    本篇文章主要介紹了Parcel 打包示例(React HelloWorld),詳細(xì)的介紹了Parcel打包的特點(diǎn)和使用示例,有興趣的可以了解一下
    2018-01-01
  • react配合antd組件實(shí)現(xiàn)的管理系統(tǒng)示例代碼

    react配合antd組件實(shí)現(xiàn)的管理系統(tǒng)示例代碼

    這篇文章主要介紹了react配合antd組件實(shí)現(xiàn)的管理系統(tǒng)示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • React useState超詳細(xì)講解用法

    React useState超詳細(xì)講解用法

    我正在處理的組件是表單的時(shí)間輸入。表單相對復(fù)雜,并且是動態(tài)生成的,根據(jù)嵌套在其他數(shù)據(jù)中的數(shù)據(jù)顯示不同的字段。我正在用useReducer管理表單的狀態(tài),到目前為止效果很好
    2022-11-11

最新評論

木兰县| 伊宁市| 曲沃县| 白银市| 赤城县| 潢川县| 荆州市| 怀化市| 五莲县| 嵊州市| 三河市| 玛沁县| 白朗县| 镇江市| 富蕴县| 沂水县| 昌平区| 天全县| 山阴县| 龙川县| 新绛县| 炉霍县| 北票市| 安龙县| 灌云县| 泸西县| 平顺县| 会昌县| 个旧市| 和平区| 闸北区| 武冈市| 八宿县| 沾化县| 淳化县| 太谷县| 大余县| 柳江县| 五指山市| 南靖县| 曲水县|