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(磁盘读取)是否已经发生。
答案 0 :(得分:1)
导入包含images
定义的文件时,会发生文件的实际拉动。这是I / O发生的时间。但这就是它在服务器上的工作方式(如果你是服务器端渲染这个组件)。如果您在客户端path/to/image-1
上执行此操作并且path/to/image-2
可能已经在捆绑的JavaScript文件中,那么就没有 I / O 操作(或http请求)。< / p>
P.S。 如果您使用动态导入,图片看起来会有所不同,但据我所知,情况并非如此。
P.S.S。 实际上现在,当我看到你用反应本地标记你的问题时,我不得不说那里的事情可能会有所不同。