首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从dangerouslySetInnerHTML延迟加载图像

从dangerouslySetInnerHTML延迟加载图像
EN

Stack Overflow用户
提问于 2018-05-23 08:11:38
回答 1查看 783关注 0票数 0

我有一个超文本标记语言与一堆图片加载到一个使用dangerouslySetInnerHTML的div

代码语言:javascript
复制
<div dangerouslySetInnerHTML={{__html: "<div><img /><img /><img /></div"}} />

我试图做的是懒惰地加载图像以提高性能。我尝试了几个包,如react-lazyload,但它似乎并不懒惰地以这种方式加载图像。如果我将HTML字符串拉到React组件中,它确实可以工作。

惰性加载是如何处理从dangerouslySetInnerHTML加载的图像的?我如何延迟加载图像呢?

EN

回答 1

Stack Overflow用户

发布于 2018-09-10 08:23:18

如果您想要一个简单(并且“安全”)的延迟加载解决方案,并且不需要使用其他人的包/代码,那么可以尝试使用IntersectionObserver应用编程接口。

https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API

我写了一篇关于如何使用它在React组件中延迟加载图像的中型文章(实现本质上与vanilla JS相同)。

https://medium.com/@parkjoon94/lazy-loading-images-intersectionobserver-8c5bff730920

您只需要这部分代码(来自上面文章的代码片段):

代码语言:javascript
复制
this.observer = new IntersectionObserver(
  entries => {
    entries.forEach(entry => {
      const { isIntersecting } = entry;
      if (isIntersecting) {
        this.element.src = this.props.src;
        this.observer = this.observer.disconnect();
      }
    });
  }, {}
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50478114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档