AwesomeImage: 支持 懒加载 / 渐进加载 / 响应加载 / WebGL滤镜 、兼容 vue2 / vue3 的通用图片组件

2,818 阅读2分钟

简介

AwesomeImage 是一个支持 懒加载 / 渐进加载 / 响应加载 / 自动webp、兼容 vue2 / vue3 / nuxt 的通用图片组件。

另外可搭配官方WebGL滤镜库或自定义WebGL滤镜组件、WebGL过渡组件实现更酷炫的图片展示或按钮效果。

特性

  • 懒加载 —— 分别设置图片和placeholder加载时机
  • 响应式加载 —— 根据屏幕宽度加载不同尺寸图片
  • 渐进式加载 —— 加载宽度为48px模糊缩率图作为placeholder,并且加载过程平滑过渡
  • SSR —— 支持服务端渲染,对于首屏图片指定非懒加载,可以在 注水 前加载图片,并兼容渐进效果,提升首屏加载体验
  • webp兼容 —— 使用不支持自动webp的图片服务时,可以使用autoWebp参数添加webp兼容写法
  • WebGL滤镜 —— 可以在图片组件AsImage内使用滤镜组件,支持自定义WebGL图片处理效果 More
  • 轮播过渡 —— 可以使用轮播图片过渡组件AsTransition,支持GLTransitions过渡效果,支持自定义WebGL图片过渡效果 More
  • 自定义图片处理 —— @awesome-image/services内置fastly、upyun等图片处理规则,可自由定制其他图片url转换函数 More

文档

AwesomeImage

Github

AwesomeImage 收录于 vuejs/awesome-vue

Demo

Nuxt3 Demo

效果

懒加载 / 渐进加载 / 响应加载 / SSR

支持懒加载,加载过程平滑过渡,根据屏幕宽度加载指定图片。在SSR模式下,可以在客户端代码加载完成前加载图片,并且同样拥有过渡加载效果,提升首屏加载体验。

show.gif

在线编辑 Lazyload - Codesandbox

SSR效果 Nuxt3

WebGL滤镜

可以在图片组件AsImage内使用滤镜组件,可安装多种官方滤镜,支持自定义WebGL图片处理效果 More

fake3d.gif @awesome-image/filter-fake3d

glitch.gif @awesome-image/filter-glitch

更多滤镜

WebGL过渡

可以使用轮播图片过渡组件AsTransition,支持GLTransitions过渡效果,支持自定义WebGL图片过渡效果 More

transition.gif

在线编辑 AsTransition - CodeSandbox

更多内容请参考官方文档