Vla*_*mik 7 javascript universal reactjs
我花了一些时间来弄清楚如何使用优秀的React Lazyload组件延迟加载图像.
滚动时演示延迟加载的图像但是在测试时我无法获得相同的行为.
罪魁祸首overflow: auto;
与按预期工作的组件相冲突.
在React中延迟加载大型图库/幻灯片的最佳方法是什么?
React Lazyload(真的喜欢这个组件,但想调查其他人)
React Virtualized(看似沉重但功能丰富)
React Infinite(由于复杂性,进入门槛较高)
React Lazylist(直接向前但不确定图像是否最佳)
其他...?
我有一个通用/同构的应用程序,所以上面的一些将由于窗口对象无法在服务器上使用而中断.
如果您想要一个更简单的延迟加载解决方案,而不必使用其他人的包/代码,请尝试使用IntersectionObserver
API。
https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
我写了一篇关于如何使用它在 React 组件中延迟加载图像的 Medium 文章(实现与 vanilla JS 基本相同)。
https://medium.com/@parkjoon94/lazy-loading-images-intersectionobserver-8c5bff730920
你只需要这部分代码(上面文章的片段):
this.observer = new IntersectionObserver(
entries => {
entries.forEach(entry => {
const { isIntersecting } = entry;
if (isIntersecting) {
this.element.src = this.props.src;
this.observer = this.observer.disconnect();
}
});
}, {}
);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8828 次 |
最近记录: |