hen*_*dra 11 software-quality reactjs redux react-redux react-hooks
目前有两个概念如何将 React 组件连接到 redux store:connect()和Redux Hooks。我想知道使用钩子是否被认为是好的软件设计。
在connect()软件质量方面,钩子有什么优势吗?
这两个connect和useSelector/useDispatch有效的方式与您反应的组分的终极版存储交互。但是,它们有不同的权衡。我在我的文章关于 React Hooks、Redux 和关注点分离的思考以及我在 ReactBoston 2019 上关于Hooks、 HOC和权衡的演讲中谈到了这些权衡。
总结:是的,钩子通常会导致组件在内部做更多的事情,而不是单独的组件做不同的事情。这两种方法都是有效的 - 这是您特别想要构建系统的问题。
就“优点”而言:React-Redux 的 hooks 需要编写的总代码比connect它少,不添加间接性,并且更容易与 TypeScript 一起使用。
就个人而言,我强烈支持使用钩子,connect()()原因如下:
connect()()mapStateToProps函数进入,而您可以为不同的 redux 状态位创建多个钩子connect()()有效地导致渲染两个 React 元素:“哑”元素和连接的元素。这使您的树嵌套两倍!connect()(),即使我已经使用了数百次。同意钩子的耦合性比connect()()- 如果这对您来说是一个问题,您可以添加一个抽象层:
import { useBadgers } from '../reducers/badgers';
function MyBadgerList() {
const badgers = useBadgers();
}
Run Code Online (Sandbox Code Playgroud)
和
// ../reducers/badgers.js
export const useBadgers = () => useSelector(state => state.badgers);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2200 次 |
| 最近记录: |