以「聯繫我們」表單爲例。我可以在一個組件中構建整個事物,或者它可以真正分解:每個文本字段都是一個組件,提交按鈕等......如何知道應該將多少形式解構並重新構建爲組件?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'方法。 –