我是减少反应发展的初学者。我想知道什么是演示组件和容器组件。
答案 0 :(得分:12)
如果将组件分为两类,您会发现组件更容易重复使用和推理。我称之为容器和演示组件。
我假设您了解redux架构
容器组件
演示组件
分类组件的好处
有关详细信息,请参阅this文章
答案 1 :(得分:1)
以下是这些差异的摘要版本,以便于理解,即使其中一些与上述答案有关,
容器组件
示例:
class TodoApp extends Component {
componentDidMount() {
this.props.actions.getTodos();
}
render() {
const { todos, actions } = this.props;
return (
<div>
<Header addTodo={actions.addTodo} />
<MainSection todos={todos} actions={actions} />
</div>
);
}
}
function mapState(state) {
return {
todos: state.todos
};
}
function mapDispatch(dispatch) {
return {
actions: bindActionCreators(TodoActions, dispatch)
};
}
export default connect(mapState, mapDispatch)(TodoApp);
演示组件
示例:
<MyComponent
title=“No state, just props.”
barLabels={["MD", "VA", "DE", "DC"]}
barValues={[13.626332, 47.989636, 9.596008, 28.788024]}
/>
答案 2 :(得分:0)
这是我的理解方式:
演示组件
关注事物的外观
容器组件
涉及逻辑的组件
但是,经过进一步的研究,我意识到,如丹·阿布拉莫夫在这里所提到的,有时这种分离是不必要的: https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0
您可以将演示组件理解为在React UI组件库中找到的东西。它们使UI组件看起来很漂亮。然后,只需要根据需要在容器组件中组成表示组件。
话虽如此,如果您使用的是组件库,那么编码的大多数组件将是容器组件。当然,您可以创建自己的react UI组件库。
由于编程中没有什么硬性规定,因此react UI组件库可能与该组件紧密相关(例如,其行为方式,例如抽屉组件),并且仍被视为表示组件。