要求&记忆消耗

时间:2018-01-03 11:54:39

标签: android ios react-native memory-management

require("path/to/image")如何运作?

对于这样的事情:

export const images = {
   image1: require("path/to/image-1"),
   image2: require("path/to/image-2"),
   ...
};

<Image source={images.image1} />

何时进行加载图像的I / O操作?它在require中声明的时间或分配给Image组件的那一刻?

使用I / O我的意思是还从磁盘上可用的映像文件中读取字节。我试图了解执行<Image source={require("path/to/image-1")} /><Image source={images.image1} />的后果。我想知道在应用程序启动的那一刻,即使在特定屏幕中使用图像之前,I / O(磁盘读取)是否已经发生。

1 个答案:

答案 0 :(得分:1)

导入包含images定义的文件时,会发生文件的实际拉动。这是I / O发生的时间。但这就是它在服务器上的工作方式(如果你是服务器端渲染这个组件)。如果您在客户端path/to/image-1上执行此操作并且path/to/image-2可能已经在捆绑的JavaScript文件中,那么就没有 I / O 操作(或http请求)。< / p>

P.S。 如果您使用动态导入,图片看起来会有所不同,但据我所知,情况并非如此。

P.S.S。 实际上现在,当我看到你用反应本地标记你的问题时,我不得不说那里的事情可能会有所不同。