什么是react-native中的“仅布局视图删除”优化?

时间:2018-11-27 18:41:56

标签: react-native

React native在View上展示了像testID这样的某些道具,这些道具对于本机测试超级有用,但是附有以下说明

  

这为此禁用了“仅布局视图删除”优化   查看!

搜索了一会儿之后,我无法找到描述此优化是什么的信息。重要吗?如果仅在开发模式/开发目标中设置这些测试ID是可行的?也就是说,否则它们将是不确定的?

1 个答案:

答案 0 :(得分:4)

当RN从影子节点树创建本机视图时,它将执行一些优化。构造本机层次结构时,可以删除实际上不显示在屏幕上的视图(不绘制任何内容或仅在JSX中用于包含和布局其子视图)。这就是为什么它们被称为“仅布局”视图的原因。

正如该警告所暗示的那样,即使是“仅布局”视图,带有testID道具的视图也不会被删除,因此在执行e2e测试时它实际上会存在。

通常来说,渲染很多视图可能会导致性能问题,但是在某些视图上使用testID不会在性能上产生明显差异,因为:

  1. 您可能对testID的看法不多
  2. 大多数带有testID的视图可能不是“仅布局”视图,因此,无论您是否使用此道具,都不会影响优化。

如果您确实拥有带有testID的“仅布局”视图,则将testID移到更合适的视图会更容易。