[英]React: When to use functions as children and when to use components
我對於何時應使用組件來呈現頁面的一部分以及何時應使用函數感到困惑。 按照: React Docs函數可以在render函數中使用,這導致一個問題:
什么時候應該使用這樣的功能:
<> {this.renderAgreementForm(data)}</>
在這種情況下,renderAgreementForm函數是一個類函數,它返回頁面的HTML和功能的大部分內容。
是否應該在組件上使用它? 即使說該組件也不會被重用?
最終,是要為數據定義一個新組件還是在現有組件中生成更多HTML,這是您必須根據具體情況做出的設計決策。 但是有一些指導原則:
我個人的經驗法則是:如果該函數呈現“大量HTML”或做一些不平凡的事情,那么我可能會創建一個新組件。 我將內聯函數用於類似的東西(即瑣碎的代碼):
render() {
return <ul>{ listOfFriends.map(this.createFriendItem) }</li>
}
createFriendItem(f) {
return <li><FriendShortView friend={f} /></li>
}
當您具有“重復代碼”時,應使用組件,例如自定義按鈕或列表視圖項。 其他任何功能都可以用作典型功能。 這有助於提高可讀性,並使其更容易了解特定於頁面的內容與應用“標准”的內容。
在render函數的返回部分。
import ListWrapper from "./ListWrapper";
// components should be used directly
showList() {
return <li>item</li>;
}
// function or constants should be wrapped with `{}`
render() {
const inputValue = "value";
return (
<ListWrapper>
{ this.showList() } // <li>item</li>
{ inputValue } // value
</ListWrapper>
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.