【问题标题】:withRouter vs react-router-dom hooks (useHistory, useLocation, useMatch)withRouter 与 react-router-dom 钩子(useHistory、useLocation、useMatch)
【发布时间】:2021-04-17 01:36:36
【问题描述】:

有时我使用 withRouter 来包装我的组件并使用来自propshistorylocation,有时我使用useHistory()useLocation()。 我不知道这两种使用方式的优缺点。

【问题讨论】:

  • withRouter 是一个 HOC,而“使用”的是钩子。 HOC 可以包装任何 React 组件,钩子只能用于函数式组件。 withRouter 传入所有路由器道具,挂钩让您只能访问特定的。它们没有客观的优点或缺点,它们是两种不同的东西

标签: reactjs react-router-dom


【解决方案1】:

您要问的不是 react-router-dom 特有的,而是要问在 React 中使用 HOC pattern vs using hooks 之间的区别,简而言之,这是项目中这些值之间的决定:

  • 可读性
  • 可重用性
  • 定制和使用
  • 调试
  • 可测试性
  • 性能

您可以在这些链接中了解更多关于它们的信息:

https://medium.com/simply/comparison-hocs-vs-render-props-vs-hooks-55f9ffcd5dc6

https://www.robinwieruch.de/react-hooks-higher-order-components

https://medium.com/javascript-scene/do-react-hooks-replace-higher-order-components-hocs-7ae4a08b7b58#:~:text=For%20broadly%2Dused%20cross%2Dcutting,UI%20code%20in%20your%20app.

【讨论】:

  • 感谢您的回答。是的,我知道withRouterHOCuseHistory 是一个钩子。无论如何,我想更多地了解它们以决定何时使用它们。
  • 我想了解性能上的差异。
猜你喜欢
  • 1970-01-01
  • 2020-09-21
  • 2021-04-08
  • 2021-06-23
  • 1970-01-01
  • 2022-01-24
  • 2021-10-07
  • 2021-08-17
  • 2020-08-07
相关资源
最近更新 更多