React native在View
上公开了一些props ,比如testID,这些props 对本机测试非常有用,但附带了以下说明
这将禁用此应用程序的"仅布局视图删除"优化
搜索了一段时间后,我无法找到描述这种优化的信息.这有意义吗?如果只能在开发模式/dev target中设置这些测试id是可行的?i、 e.否则,它们将是未定义的?
React native在View
上公开了一些props ,比如testID,这些props 对本机测试非常有用,但附带了以下说明
这将禁用此应用程序的"仅布局视图删除"优化
搜索了一段时间后,我无法找到描述这种优化的信息.这有意义吗?如果只能在开发模式/dev target中设置这些测试id是可行的?i、 e.否则,它们将是未定义的?
当RN从shadow nodes树创建本机视图时,它会执行一些优化.在构建本机层次 struct 时,可以删除实际上没有显示在屏幕上的视图(不绘制任何内容,或者只是在JSX中用于包含和布局其子对象).这就是为什么它们被称为"仅布局"视图.
正如此警告所示,即使是"仅布局"视图,也不会删除带有testID
props 的视图,因此在执行e2e测试时,它实际上会在那里.
一般来说,渲染大量视图可能会导致性能问题,但在某些视图上使用testID
不会产生明显的性能差异,因为:
testID
testID
的视图可能不是"仅布局"视图,因此使用此props 与不考虑优化没有任何区别.如果您的视图"仅布局"为testID
,那么将testID
移动到更合适的视图会更容易.