首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >反应:父母还是孩子?如何决定在哪里放置组件?

反应:父母还是孩子?如何决定在哪里放置组件?
EN

Stack Overflow用户
提问于 2016-03-25 13:43:04
回答 1查看 466关注 0票数 2

在使用React进行开发时,通常存在与父组件及其子组件相关的组件。我总是很难决定应该把这种类型的组件放在哪里。

例如,一个SingleListItem列表组件(父组件)包含许多组件(子组件)。当用户单击SingleListItem组件时,对话框组件将弹出。是否应该将对话框组件作为List或的子组件

如果我错了,请纠正我:

  • 如果我将Dialog组件放置为List的子组件,则List组件会变得非常庞大-- List组件可能包含不同类型的ListItem组件每个ListItem组件都可能有自己的特定对话框组件(DialogFoo,DialogFoo)。
  • 如果我将SingleListItem,的对话框组件放置为子组件,那么每个SingleListItem都将包含一个对话框组件。如果在一个SingleListItem列表中有1000个,那么额外的内容会使应用程序变慢。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-25 15:44:22

我的第一个倾向是决定谁是对话框的父级(列表还是列表)。

a.定位对话框的

  • 如果对话框的位置相对于listitem (例如,带有选项的下拉列表),那么让对话框成为listitem的子对话框就更有意义了。
  • 如果对话框相对于父对话框(例如,您确定要删除-类型的模式)-则对话框作为父级的子对话框更有意义。

等等

b.影响对话框的

  • 如果对话框的结果只影响单个listitem,而不需要完全重新呈现列表(例如,更改listitem的颜色,存储在react状态中),那么对话框作为listitem的子元素就更有意义了。
  • 如果对话框结果可能触发列表的重新呈现(例如,删除或重新排序项),那么对话框作为列表的子元素更有意义。

与你的其他观点相比,列表或赞美诗的选择没有什么不同:

  • 如果只有1种风格的对话框,则只定义一次。并且只呈现一次对话框(无论是从列表中还是从需要呈现对话框的1 listitem中)。
  • 如果您有更多的口味(如dialogBar和dialogFoo ),那么无论是在列表中还是在listitem中,它都是同样庞大的。

至于代码的数量,也没有差别:

  • 列表有一个代码集,对话框有一个代码集,列表项有一个代码集。如果你渲染1000首歌词,你的代码集不会被复制1000次.
  • 如果您有10行代码来触发对话框,那么这10行代码需要放在listitem.js文件或list.js文件中。

唯一的区别是:如果您将对话框放在listitem中,您用于评估是否显示对话框的代码将被执行1000次。但是,几乎不可能使这样的评估效率低到根本没有任何差别。即使有1000条线。正如所指出的,如果1000行线不适合在屏幕上显示,还有许多其他原因不能渲染它们。

希望这能有所帮助。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36221109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档