React native 当我使用'require'在React Native中加载图像时,它真的会将图像加载到内存中吗?什么时候发布?

React native 当我使用'require'在React Native中加载图像时,它真的会将图像加载到内存中吗?什么时候发布?,react-native,require,React Native,Require,有两种方法可以为React Native中的映像组件要求映像 // 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('.

有两种方法可以
为React Native中的
映像
组件要求映像

// 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} />
//1。内联'require`(使用时触发)
常量图标视图=()=>
// 2. 定义缓存变量(加载时触发)
const imageSource=require('./img/favicon.png')
常量图标视图=()=>
  • 两种情况都一样吗
  • 第二种情况会将整个图像加载到内存中吗
  • 导出的图像何时需要发布

require
的调用没有多大作用-它返回一个由RN打包机注册并分配给此图像的ID。当图像组件需要渲染时,实际URL将从ID解析

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

因此,要回答您的问题:

  • 两种情况都是一样的
  • 第二种情况并不特殊,不会将整个图像加载到内存中
  • 当图像视图的本机表示被释放时,图像将被释放,除非它被缓存在内存中(在某些情况下,本地图像在内部被缓存),此时操作系统需要在必要时释放内存
  • 注意:上面的一些信息是从iOS的角度来看的,但在Android上也应该足够接近