根据
https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0#.i63w9pvzw
Presentational components:
- May contain both presentational and container components** inside,and usually have some DOM markup and styles of their own.
- Have no dependencies on the rest of the app,such as Flux actions or stores.
我认为如果表示组件包含容器组件,它们将依赖于Flux或Redux(或容器组件所依赖的任何东西).
这将使表示组件难以测试和重用.
它还不错,完全没问题.
react-redux的重点是让您将容器组件直接连接到商店,而不必将整个商店作为道具传递给每个组件.组件重用不是问题,因为< Provider>组件将使任何连接的容器组件在其下的任何位置工作.
实际上测试容器组件并不困难.您可以将连接的组件设置为默认导出,但也可以将未连接的组件导出为命名导出,您可以将其用于测试,并在这些测试中手动传递道具.有关详细信息,请参阅‘Writing Tests’ part of the Redux docs的“连接组件”部分.
至于测试包含容器组件的表示组件,它不会是一个问题.浅渲染在测试中仍然可以正常工作(除非你遇到this issue).如果您需要在测试中安装组件,您始终可以将其包装在< Provider>中.具有特定于该测试的商店的组件.
编辑:这个答案特定于Redux with react-redux.其他Flux实现可能会遇到一些我不知道的困难.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。