显示端富文本生成的htmlstring图片加载预占的实现方案img的出现会很突兀。我最终的解决方案:在加载富文本内容时,先请求模糊版本的图片,作为直接占位符,然后通过滤镜动画逐渐呈现带有富文本内容的清晰版本的图片。插件:(1)htmr感谢简书提供的思路https://www.jianshu.com/p/366...这个插件可以适当自定义htmstring的实际渲染规则,比如用react组件替换img.【补充】需要满足以下条件才能直接返回文本内容,详见其npm说明文档。elseif(typeofprops==="undefined"){return<>{nodeName}>;}(2)react-progressive-image-loading一个渐进式模糊图片加载的插件,见我上一篇文章www.v2ex.com/t/818727由于实现了上述方案的项目,在图片资源方面,可以在图片地址后添加w/40/h/50等宽高参数,获取指定大小的图片类似阿里云的OSS。然后通过css放大到原图需要显示的大小,得到模糊版。[额外]如果图片是404,这个插件会保留滤镜:blur(10px);style,如果要替换或者去掉,我加了这么一段onError={(e:any)=>{e.target.onerror=null;e.target.style="filter:none;"}}代码的相关部分:importhtmrfrom"htmr";importProgressiveImagefrom"react-progressive-image-loading";consttransform={_:(nodeName:any,props:any,children:any)=>{if(nodeName=="img"){让itemSrc=props.src;让itemStyle=props.style;返回(
