React native 反应本机映像缓存

React native 反应本机映像缓存,react-native,React Native,我在本网站上阅读了关于React Native image组件的文档,发现了一些问题: 如果我使用source属性来显示图像。下载后是否会缓存映像并保存到磁盘 如果是,缓存策略是什么 如果我想将下载的图像保存到磁盘。使用getSize或预取方法更好吗 非常感谢。如前所述,响应本机映像组件NSURLRequest的缓存策略。我个人使用RNFetchBlob来缓存所描述的图像。您也可以签出。您可能对我的高阶组件模块感兴趣,该模块为本机组件添加了与性能相关的映像缓存和“永久缓存”功能 Tl;DR代码

我在本网站上阅读了关于React Native image组件的文档,发现了一些问题:

  • 如果我使用source属性来显示图像。下载后是否会缓存映像并保存到磁盘

  • 如果是,缓存策略是什么

  • 如果我想将下载的图像保存到磁盘。使用getSize或预取方法更好吗


  • 非常感谢。

    如前所述,响应本机映像组件NSURLRequest的缓存策略。我个人使用RNFetchBlob来缓存所描述的图像。您也可以签出。

    您可能对我的高阶组件模块感兴趣,该模块为本机组件添加了与性能相关的映像缓存和“永久缓存”功能

    Tl;DR代码示例:

    从“react native image cache hoc”导入imageCacheHoc;
    const CacheableImage=imageCacheHoc(图像);
    导出默认类应用程序扩展组件{
    render(){
    返回(
    欢迎来到这里!
    );
    }
    }
    
    将缓存第一个映像,直到总本地缓存增长超过15 MB(默认情况下),然后首先删除缓存映像,直到总缓存再次低于15 MB

    第二个映像将永久存储到本地磁盘。人们使用它作为随应用程序发送静态图像文件的替代品


    这应该可以满足您的开箱即用的需求。希望有帮助

    FastImage最适合用于图像缓存

    纱线添加快速图像

    参考:

    其最大道具的行为类似于反应本机图像属性

    从“反应本机快速图像”导入快速图像
    
    过程 React Native会在下载和解码图像后缓存它们。

    缓存策略
  • 有效期
  • 2.使用位图大小作为缓存开销;默认情况下,React本机iOS中的总20MB缓存容量

  • iOS中
    NSCache
    中的未知存储和逐出策略

  • 如果我使用
    并保存图像,然后断开网络连接,请参见

    hi中的更多内容。如果我使用
    ?@ItaloRodrigo Yes,图像将显示。映像文件保存到本地磁盘,只要永久属性设置为true,本地文件将永远不会被删除(如果文件在本地存在,CacheableImage将首先使用该文件,而不是访问网络)。如果未将永久属性设置为true,则可以从本地缓存中删除本地文件,然后再次点击网络以再次下拉远程图像文件。@ItalorDrigo另外,您可以使用CacheableImage.cacheFile()静态方法()而不是使用组件渲染一次并最初将文件下载到本地磁盘以编程方式将远程映像下载到本地磁盘。如果您计划以编程方式下载大量图像,我还建议您使用我的队列()。@Italordrigo如果您需要缓存json响应,我将使用AsyncStorage存储它。setItem('cacheKey','{“exampleJson”:2}');然后稍后通过:const jsonCache=await AsyncStorage.getItem('cacheKey')拉出缓存;更多信息:对于高级数据存储,请使用redux和redux persist。我希望它能帮助您