The*_*der 5 code-cleanup reactjs react-redux
我在有效的方式有点搞不清使用connect()从反应-终极版库.我有打击组件
class SignUp extends React.Component {
//some functions
render(){
return (
<SignUpPageWrapper>
<SignUpPage>
<SignUpPageLeft>
<SignUpLeftText /> //component
</SignUpPageLeft>
<SignUpPageRight>
<SignUpForm /> //component <=
</SignUpPageRight>
</SignUpPage>
<SignUpFooter /> //component
</SignUpPageWrapper>
);
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,很少有反应Component(//评论),其余const来自样式组件库.
截至目前,我已经制作SignUpForm了一个容器,即包裹connect()
class SignUpForm extends React.Component {
//lots of code here using this.props from connect()
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(SignUpForm);
Run Code Online (Sandbox Code Playgroud)
但我觉得这是不使用的有效途径connect,更好的将是父组件包装SignUp成connect类似下面,然后传递methods,并states为props孩子部件.
class SignUp extends React.Component {
//some functions
render(){
return (
//other components
<SignUpPageRight>
<SignUpForm signupFunc={this.props.signupFunc} />
</SignUpPageRight>
</SignUpPage>
<SignUpFooter /> //component
</SignUpPageWrapper>
);
}
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(SignUp);
Run Code Online (Sandbox Code Playgroud)
编写此代码的干净,高效和好的方法是什么?
如果我们通过文档,实际上对此有正确或错误的答案。Redux 文档建议将组件分为表示组件和容器组件。
Redux 的 React 绑定将展示组件与容器组件分开。这种方法可以使您的应用程序更易于理解,并允许您更轻松地重用组件。 Redux 文档
您的SignUpForm组件是容器组件的完美示例,它负责与 redux 存储进行通信。值和调度处理程序应该通过 props 传递给你的展示组件。这使您的商店操作非常容易理解,因为它全部包含在一个组件中。
现在是为了可重用性。您的容器组件应该足够高,以便它可以包含将操作您的 redux 存储的逻辑切片的所有表示组件,但足够低以便您可以尽可能多地重用。因此,对于表单,容器应该包含所有输入,并且您可以将输入本身分成任意数量的表示组件。这也允许您使用不同的容器组件重用您的展示组件,只要您以模块化方式构建它们。
| 归档时间: |
|
| 查看次数: |
621 次 |
| 最近记录: |