背景
在RN开发过程中,我们深受Rn包体积的扩大而困扰。为了优化包体积,最直接的方式莫过于减少本地资源的引用(将资源上传到云端)。然而虽然包的体积大大减小,但伴随而来的则是由于网络延时导致的加载缓慢,进而引发严重的体验问题,结果自然就是得不偿失。那么如何解决这样的问题呢,就需要一套可行的资源预加载方案。下面我们将着重讨论图片资源的预加载方案。
解决方案
1、图片预加载
React-Native官方Image组件已经提供了prefetch的方法来支持图片预加载,其具体使用如下:
// 1、通过调用Image.prefetch方法,拿到图片预加载的Promise对象,这个时候还未实现图片预加载
let prefetchTask = Image.prefetch('www.baidu.com");
// 2、通过调用prefetchTask的then方法,来实现图片预加载
prefetchTask.then(() => {
// todo 图片预加载完成后,需要做的后续操作在这里实现
});
2、可配置化
上面介绍了图片的预加载方案,但是还有一个重大缺陷尚未解决,那就是可配置化的图片预加载。在一般的项目实践中,我们总是遇到各种各样的图片展示问题,如“弱网情况下,图片出现较慢“、“有些弹窗的背景还没出来,弹窗就展示了”等等一系列体验问题,但是我们又不能每次都通过发布代码来实现图片的预加载,这个时候就需要支持配置化的图片预加载。
<