Reactjs react:如何构造组件
我正在学习react,需要一些关于如何构建组件树的建议 我想建立一个带有相关过滤器的通用列表 我有:Reactjs react:如何构造组件,reactjs,components,Reactjs,Components,我正在学习react,需要一些关于如何构建组件树的建议 我想建立一个带有相关过滤器的通用列表 我有: 列表组件:显示项目的列表。道具: 子项:用于呈现列表中每个项的属性(函数) (项目)=> {item.name} 列表:对象数组 筛选组件:用于筛选列表的一组输入/选择 filterList:包含所有字段名的数组 onChange:字段更改时调用的函数 stateValues:字段的值(上述组件中的状态) ListAndFilterContainer:包含筛选器的状态并将其传递给列
- 列表组件:显示项目的列表。道具:
- 子项:用于呈现列表中每个项的属性(函数)
(项目)=>
- {item.name}
- 列表:对象数组
- 子项:用于呈现列表中每个项的属性(函数)
- 筛选组件:用于筛选列表的一组输入/选择
- filterList:包含所有字段名的数组
- onChange:字段更改时调用的函数
- stateValues:字段的值(上述组件中的状态)
- ListAndFilterContainer:包含筛选器的状态并将其传递给列表
- 列表:传递给列表组件的项目列表
- 子项:作为子项传递到列表以显示项的函数
- filterList:传递给筛选器组件的字段列表
`<div>
<FilterOnList
filterList={this.props.filterList}
filterState={this.state.filter}
onChange={this.handleFilterChange} />
<ListComponent
list={this.props.list}
title={this.props.title}
>
{this.props.children}
</ListComponent>
</div>`
`
{this.props.children}
`
现在,为了使其通用化,我希望能够修改列表如何呈现的标记,以及过滤器组件的输入字段如何呈现的标记
我希望能够使用过滤列表的逻辑,但我仍然希望在演示文稿上自由发挥
我如何构建它?我想最简单的方法是继承列表组件并更改渲染?例如,创建CarList扩展列表?
过滤器组件也一样吗?
谢谢想一想
- 使用容器组件保存状态是个好主意。这是一种适合React的模式
- 听起来ListComponent可能只是有不同类型的子项,可能不需要对不同的列表类型进行特定的处理。换句话说,您可能拥有一个CarItem组件数组,并将其呈现为ListComponent的子级,而不是制作一个单独的CarListComponent。这取决于您是否真的需要不同的逻辑来呈现不同的列表。一些视觉上的差异,例如较小的行高,可以通过CSS来实现,因此如果您传入一个className prop并将其呈现为
,可以处理大量定制 - 如果您发现不同类型的列表组件(或项目等)需要单独的类,我通常会避免使用“扩展”、混合和继承。这可能会引起争议,但在我看来,Javascript本身的类型过于松散,无法处理继承。当事情变得有点复杂时,你会忘记发生了什么事情,比如“我从哪一个班级得到了这个功能?”如果你想继承,就考虑打字。否则,我将使用函数组合-只需从模块导入所需的函数