img图片加载失败的处理
img图片加载失败的措施
很多产品都会要求图片加载失败会出现一个占位符这种类似的图片,在vue中您可以通过以下方式去解决
第一种:
javascript
若图片加载不出来,可以通过one
React 实现异常图片占位,优化用户体验,可以看看这个,类似的问题,react 下的实现:
// Note: 此组件避免在服务端渲染应用中使用,可能会有错误
import React, { FC, useCallback, useEffect, useState } from 'react';
interface Props extends React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> {
fallbackSrc?: string; // 加载图片异常时的替代图片
}
const Index: FC<Props> = ({ src, fallbackSrc, ...props}) => {
const [originalSrc, setOriginalSrc] = useState(src);
// 错误标志,确保 onError 只执行一次,避免死循环
const [errored, setErrored] = useState(false);
// 图片改变时重置数据
useEffect(() => {
setOriginalSrc(src);
setErrored(false);
}, [src]);
const onError = useCallback(() => {
if (!errored) {
setOriginalSrc(fallbackSrc);
setErrored(true);
}
}, [errored, fallbackSrc]);
// eslint-disable-next-line jsx-a11y/alt-text
return <img src={originalSrc} onError={onError}{...props}/>;
};
export default Index;