以“联系我们”表单为例。我可以在一个组件中构建整个事物,或者它可以真正分解:每个文本字段都是一个组件,提交按钮等......如何知道应该将多少形式解构并重新构建为组件?ReactJS中有多少组件太多?
3
A
回答
2
我的原则是能,将在您的应用程序,无论是美学或功能重新使用组件IZE事情。如果这是您需要的唯一形式,则可能不值得将每个元素转换为组件的开销。但是如果你有很多形式考虑制作组件。
例理由组件IZE表单元素:
- 特殊形式字段的功能(
InputEmail
:确实为电子邮件输入前端验证) - 样式(
SubmitButton
:总是红,全宽等)
在我做过的大项目中工作得很好。我有一组可定制的表单组件,因此我可以使用复杂的功能构建一个样式化的表单。通常它看起来像:
<Form onSubmit={this.handleSubmit}>
<Input default label="Email Address" type="email" validate={validateEmail} />
<Input default label="Password" type="password" />
<Button primary type="submit" />
</Form>
Form
执行一般的验证逻辑Input
运行validateEmail
道具和呈现标签- 你的想法...
1
这最终取决于个人喜好和应用程序的复杂性,但文档中的"Thinking in React"文章引用single responsibility principle作为将UI分解为组件的好方法。
另外值得注意的是:使用react的主要原因之一是它强烈支持可重用的模块化组件。更大,更复杂的组件往往难以重复使用。您可以在一个组件中构建完整的联系表单,但是如果您想在其他地方重新使用电子邮件输入验证器,则可以考虑创建另一个组件。
有趣的是,在实践中,我的反应组件长度在50-300行之间,顶层组件是最大和最复杂的组件。
相关问题
- 1. 有多少层太多?
- 2. 有多少个EJB太多?
- 3. 有多少NSTimers太多?
- 4. 有多少查询太多?
- 5. STL有多少太多?
- 6. 有多少任务太多?
- 7. JSON有多少JSON太多?
- 8. JVM中有多少个对象太多?
- 9. memcached中有多少个键太多?
- 10. MVC中有多少GUI逻辑太多?
- 11. mysql-query中有多少where-clause太多?
- 12. 表中有多少个“太多”字段?
- 13. 多少javascript太多
- 14. 多少是太多?
- 15. 数组对于数组来说有多少数据太多?
- 16. WCF-有多少种方法太多?
- 17. SQL SSIS有多少步骤太多
- 18. 有多少NGinx重定向太多?
- 19. 有多少记录/对象太多?
- 20. 有多少顶点缓冲区太多?
- 21. 有多少PHP包含太多?
- 22. 有多少Ruby线程太多?
- 23. SQL Server 2005表有多少列太多?
- 24. 有多少班级太多? Rails STI
- 25. 有多少构造函数太多?
- 26. 有多少列是太多列?
- 27. 有多少个nginx缓冲区太多?
- 28. 有多少sql查询太多?
- 29. ASP.NET MVC项目中有多少文件太多?
- 30. 从文件中读取时有多少行数太多?
试验和错误。我通常开始正常写作,一旦我看到可能是它自己的组件的东西,我把它放在那里。 – azium
另外请记住,您通常只能通过发芽函数而不是全新的组件来将命名的抽象引入'render'方法。 –