【发布时间】:2016-04-28 08:44:59
【问题描述】:
所以,我知道没有一种“正确”的方法可以解决这个问题,但我想就每种方法的优缺点进行一次对话。
所以,在阅读了 Dan Abramov 的 post 和 comment 并阅读了 this 教程之后,我想知道这两种不同方法的优缺点:
方法 A:
├── Smart / Container component
│ ├── Dumb / presentation component
│ │ ├── Dumb / presentation component
│ ├── Dumb / presentation component
方法 B:
├── Smart / Container component
│ ├── Dumb / presentation component
│ │ ├── Smart / Container component
│ ├── Dumb / presentation component
这里的主要区别在于您如何管理您的状态。在选项 B 中,最深的组件应该知道 redux(例如调度),这可能是一个缺点。在方法 A 中,您可能需要在许多 Dumb 组件之间向下传递道具。
编辑
奇怪的是,在Redux docs 的“传递存储”部分,您可以在“提供者”(反应上下文)后面找到对“magic”的引用。在上下文文档中明确表示:
正如在编写清晰的代码时最好避免使用全局变量一样,您 在大多数情况下应该避免使用上下文
和:
在使用此 API 构建组件之前,请考虑是否有 更清洁的替代品。我们喜欢简单地将项目作为 这种情况下的数组
所以,据我所知,这是一种不好的做法? (选项 B...)
【问题讨论】:
标签: javascript reactjs redux