components - React 组件函数式
问题描述
我有一个关于 React 功能组件的问题,特别是关于功能组件中的功能。例如:
function WorkshopComponent(props) {
function renderWorkshopElements() {
props.elements.map((element) => {return <Element key={element.id} {...element} />})
}
return (<div> renderWorkshopElements() </div>)
}
我的问题:是否有参数只在组件级函数中使用 props 对象?写这个是不是更好:
function WorkshopComponent(props) {
function renderWorkshopElements(elements) {
elements.map((element) => {return <Element key={element.id} {...element} />})
}
return (<div> renderWorkshopElements(props.elements) </div>)
}
解决方案
我认为这是一个非常好的问题,我想听听其他人的意见。
在您的第一个示例中,您接受了范围的力量,我认为这很好。我个人仅在我的范围内没有值时才在函数中使用参数(例如:事件、数组元素等)
在您的第二个示例中,有趣的是,您甚至不需要将此函数包含在 WorkshopComponent 中,它可以在它旁边声明并且工作相同(渲染明智)。如果你想对这个函数进行单元测试,这很好。
tl;博士:我会说第 1 版在大多数情况下更有意义
推荐阅读
- c# - 在设置 ItemSource 后向 DataGrid 添加一列/在设置 ItemSource 后向 DataGrid 的每一行添加一个字段
- python - 具有多变量的 Python 抓取
- xslt - XSLT 流式处理复杂文档
- javascript - 如何将 JavaScript 事件中的文本附加到 Ruby 语法中
- swift - SwiftUI CoreData NSManagedObjectContext 在环境中
- java - getClass().getResource 预先附加工作目录
- java - 构建后如何解决“找不到 Xpage 类”
- reactjs - React + ASP.Net Core 3:CORS 对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”标头
- node.js - firebase admin sdk 未找到 firestore 数据
- ios - CocoaPods:pod install 给出“Errno::E2BIG - Arg list too long”