React Native 新架构实战课
蒋宏伟
58 同城前端架构师,58RN 负责人
18214 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
React Native 新架构实战课
15
15
1.0x
00:00/00:00
登录|注册

05|Image:选择适合你的图片加载方式

你好,我是蒋宏伟。
今天我们来讲解 React Native 框架中的 Image 组件。顾名思义,图片组件 Image 就是用来加载和展示图片的。
你可能会觉得,图片组件的基础用法非常简单呀,学起来也很容易上手,这有什么好讲的呢?没错,正因为它很简单,有时候,我们可能会忽视对这些基础知识的琢磨。在日常开发中,图片是影响用户体验的关键因素之一,它很常见,基本上哪里都有它。而且相对于文字,图片也更容易抓住用户的眼球。图片组件很重要,但要用好却不那么容易。
React Native 的 Image 组件一共支持 4 种加载图片的方法:
静态图片资源;
网络图片;
宿主应用图片;
Base64 图片。
这 4 种方案给我们业务提供了更灵活的选择空间,但同时也让不少同学犯了选择困难症,不同情况下我该怎么选呢?今天,我们就来深度剖析这 4 种方案分别的适用场景是什么,并给你介绍一下我推荐的最佳实践。

静态图片资源

静态图片资源(Static Image Resources)是一种使用内置图片的方法。静态图片资源中的“静态”指的是每次访问时都不会变化的图片资源。站在用户的视角看,App 的 logo 图片就是不会变化的静态图片资源,而每次访问新闻网站的新闻配图就是动态变化的图片。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

React Native框架中的Image组件使用方法和最佳实践是本文的重点。作者详细介绍了四种图片加载方式:静态图片资源、网络图片、宿主应用图片和Base64图片,并提供了详细的使用方法和注意事项。文章强调了图片在用户体验中的重要性,以及缓存和预加载机制对图片加载速度和用户体验的重要性。此外,还介绍了静态图片资源的加载原理和网络图片的使用建议。最佳实践方面,建议在动态更新的React Native应用中,使用自动化工具管理网络图片和Base64图片,以提高开发效率。总的来说,本文为开发者提供了全面的React Native Image组件的使用指南,涵盖了技术细节和最佳实践,对于想要深入了解React Native中图片加载的开发者具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《React Native 新架构实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(12)

  • 最新
  • 精选
  • 极客时间用户
    发布包的时候打包的bundle和images都在包里面,如果动态更新的话怎么处理bundle和images?

    作者回复: 将 bundle 和 images 压缩成一个 zip 是一种方式

    2022-12-21归属地:北京
  • 小天儿
    第一题题意没有太理解; 第二题的话,如果是我,应该会使用 node 来开发一个命令行工具,以文件夹划分项目,通过添加一个 json 配置文件的方式关联项目与其配置(上传地址、秘钥等等),然后只需要执行同步命令,就可以快速对本地存在而远程不存在的图片进行上传

    作者回复: 思路很正确,厉害👍

    2022-05-14
  • yuxizhe
    老师,你好,请问这里“编译后的 Bundle 和静态图片资源,会在构建时内置到 App 中”,内置到App哪个目录下呢?

    作者回复: 你好,在打包好的文件中你搜索 httpServerLocation 就能找到它的地址,文稿中示例代码如下: module.exports = _$$_REQUIRE(_dependencyMap[0]).registerAsset({ "__packager_asset": true, "httpServerLocation": "/assets/src/Lesson3Image", "width": 190, "height": 190, "scales": [1], "hash": "0d4ac32eb69529cf90a7b248fee00592", "name": "dianxin", "type": "jpg" });

    2022-04-18
  • 老师有没有遇到过一个页面最多只能加载15张uri格式的图片,超出就会显示为空白

    作者回复: 你指的 uri 是使用 url 加载的远程图片是吧? 我没有遇到过原创图片加载的问题,建议按照二分法,检查一下自己/别人本地环境、当前/历史版本有没有问题。

    2022-04-15
  • 潇潇暮雨
    老师是否遇到过Image加载不出来远程图片的情况,宽高都有设置,偶现,ios出现的频率高些,RN0.59版本。后来我们就不用RN的Image了,桥接了原生网络图片库。

    作者回复: 我们没有遇到过,不过我们也对 Image 进行了底层改造。

    2022-04-12
  • Hozan
    如果有讲到@2x @3x这些不同图片是怎么在不同手机分辨率自动适配的,就更好一点😁
    2022-07-22
    1
  • 极客时间用户
    动态更新的话,bundle和images作为一个压缩包,app通过网络下载然后解压到手机沙盒里面,这样加载bundle的时候,images也有了。
    2022-12-21归属地:上海
  • 佰亿
    iOS图片缓存我记得是用了nscache,缓存大小20M
    2022-06-29
  • 周文硕
    这篇讲的很清晰,点赞
    2022-06-24
  • Geek_a96f3d
    我想知道 大家怎么实现图片管理工具的
    2022-04-26
收起评论
显示
设置
留言
12
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部