gpt4 book ai didi

javascript - 如何在内联样式属性(React)中延迟加载背景图像?

转载 作者:行者123 更新时间:2023-12-02 16:20:01 26 4
gpt4 key购买 nike

我目前正在开发我的第一个 React 应用程序,我面临着一些困难(对我来说)。

<div
className="container-fluid"
id="cityDetail"
style={{
backgroundImage: `url(${camera.lastPhoto})`,
backgroundRepeat: "no-repeat",
backgroundPosition: "center",
backgroundSize: "cover",
height: "100vh"
}}
>

我想延迟加载背景图像。

我还没有找到好的组件/实用程序来执行此操作。有人有什么想法吗?

最佳答案

这是一个基于 Naoise 答案的自定义 React 钩子(Hook):

const useProgressiveImage = src => {  
const [sourceLoaded, setSourceLoaded] = useState(null)

useEffect(() => {
const img = new Image()
img.src = src
img.onload = () => setSourceLoaded(src)
}, [src])

return sourceLoaded
}

用法:

const Component = (source, placeholder) => {
const loaded = useProgressiveImage(source)

return (
<div style={{ backgroundImage: `url(${loaded || placeholder})` }} />
)
}

关于javascript - 如何在内联样式属性(React)中延迟加载背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51607043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com