在 React Native 中渲染动画 GIF 的更有效方式

A more efficient way to render animated GIFs in React Native

我正在开发一个可与大量动画 GIF 配合使用的 React 本机应用程序。

我已经尝试使用 react native 文档库 com.facebook.fresco:animated-gif:1.3.0 来支持 gif 动画,然而,默认的性能图像组件很糟糕,但是使用 FastImage 包我最多可以获得 10 个 gif。

由于有可能将原生库集成到 React Native 中,我想知道有什么办法可以解决这个问题?

我已经测试了几种提高在 React Native 中加载多个动画 GIF 的性能的方法:

  • 动画图片的更好格式是 webp(为什么?)。压缩后,无论是在您的网络应用程序还是移动应用程序中,它都可以轻量级地加载大约 90%。

  • 应升级 Facebook 的 Fresco 库,该库是用于渲染 gif 和 webp 文件的文档推荐库,因为它为多个 gif 加载提供了更好的性能,并且还应添加原始 fresco 库作为依赖 - 目前,至少 1.5.0 或更高版本,如果可能,w/ react-native:0.54 -.

  • FlatList 可以使用 removeClippedSubviews prop 进行优化以删除不在屏幕上的任何内容。或者,有 third-party 库,例如 recyclerlistview 或延迟加载列表。

  • 在某些情况下,使用 fast-image 进行缓存也很有用。