gpt4 book ai didi

react-native - 当我在 React Native 中使用 `require` 加载图片时,它是否真的将图片加载到内存中?什么时候发布?

转载 作者:行者123 更新时间:2023-12-05 04:11:27 29 4
gpt4 key购买 nike

在 React Native 中,有两种方法可以require Image 组件的图像。

// 1. inline `require` (triggered when using)
const IconView = () =>
<Image source={require('./img/favicon.png')} />

// 2. define a variable for cache (triggered when loading)
const imageSource = require('./img/favicon.png')
const IconView = () =>
<Image source={imageSource} />
  • 两种情况是否相同?
  • 第二种情况会将整个图像加载到内存中吗?
  • 什么时候发布源自require 的图像?

最佳答案

调用 require 并没有做太多事情——它返回一个 ID,该 ID 由 RN 打包程序注册并分配给该图像。当图像组件需要渲染时,实际的 URL 从 ID 中解析出来。

在 native 端,图像是从 URL 加载的,即使在这一点上,图像对象表示也只占用少量内存。只有当图像实际绘制为原生纹理时,它才会膨胀(解压缩)并完全加载到内存中(当然,除非图像已经缓存)。

所以回答你的问题:

  1. 两种情况都一样
  2. 第二种情况并不特殊,不会将整个图像加载到内存中
  3. 图像将在释放 ImageView 的 native 表示时释放,除非它缓存在内存中(在某些情况下,本地镜像在内部缓存),此时释放此内存成为操作系统的关注点必要的。

注意:上面的一些信息是从 iOS 的角度来看的,但它在 Android 上也应该足够接近。

关于react-native - 当我在 React Native 中使用 `require` 加载图片时,它是否真的将图片加载到内存中?什么时候发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42646306/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com