那风在极客
归根结底,是要减轻 bridge 的负担。
避免重新渲染,也就避免了过多不必要的数据通过桥传递给原生,不过总是使用类似 shouldComponentUpdate 之类的技术来避免重新渲染的,会影响开发效率和开发体验,我们只有在监测到某个页面有明显的性能问题,才会使用。
使用 InteractionManager 是为了避免用户操作时重新渲染 UI,同样减轻了桥的负担。用户操作时,譬如滑动列表,会产生大量的触屏事件,这些事件会通过桥传递给 React 侧处理,如果此时再将渲染数据通过桥传递给原生,就会造成阻塞,导致卡顿。所以需要等待用户行为结束,再将渲染数据发送给原生侧,刷新 UI。不过,我们更倾向于将手势,动画封装到原生组件中,由原生侧处理用户行为。