hash2path wrapper for vue 2, also surport image delay load and image size adaptation for various devices.
// 默认全局配置
Vue.use(VueImg)
// 自定义全局配置
Vue.use(VueImg, {
loading: '',
error: '',
prefix: '',
quality: 100,
adapt: true,
delay: 2000 // 单位ms
})由于 Vue 2 删除了指令中的 params,故采用 object value 的形式传入参数
<!-- 设置图片 + 默认参数 -->
<img v-img="'xxx'">
<!-- 设置图片 + 自定义参数 -->
<img v-img="{ hash: 'xxx', width: 233, height: 666, defer: true, adapt: false }">
<!-- 设置背景 + 默认参数 -->
<div v-img="'xxx'"></div>
<!-- 设置背景 + 自定义参数 -->
<div v-img="{ hash: 'xxx', width: 12, height: 450 }"></div>VueImg 提供了一些属性,可用于指令以外的场合。你应当视它们为只读属性,避免直接修改。
VueImg.cdn // [String] 当前环境的默认 CDN
VueImg.canWebp // [Boolean] 当前环境是否支持 webP
VueImg.getSrc({ ... }) // [Function] 获取图片地址| 名称 | 描述 | 全局配置 | 指令参数 | getSrc 函数 |
|---|---|---|---|---|
| hash | [String] 图片哈希(必填) | ✕ | 〇 | 〇 |
| width | [Number] 宽度 | ✕ | 〇 | 〇 |
| height | [Number] 高度 | ✕ | 〇 | 〇 |
| format | [String] 强制图片格式 | ✕ | 〇 | 〇 |
| fallback | [String] 不支持 webP 时转换格式 | ✕ | 〇 | 〇 |
| quality | [Number] 图片质量 | 〇 | 〇 | 〇 |
| prefix | [String] CDN 地址前缀 | 〇 | 〇 | 〇 |
| suffix | [String] CDN 处理后缀 [?] | 〇 | 〇 | 〇 |
| loading | [String] 加载中默认图片哈希 | 〇 | 〇 | ✕ |
| error | [String] 失败替换图片哈希 | 〇 | 〇 | ✕ |
| adapt | [Boolean] 图片尺寸是否适配设备屏幕 | 〇 | 〇 | 〇 |
| delay | [Number] 设置延迟加载最大等待时长(ms) | 〇 | ✕ | ✕ |
| defer | [Boolean] 图片是否进行延迟加载 | ✕ | 〇 | ✕ |
| urlFormatter | [Function] 修改 v-img 生成的 url | ✕ | 〇 | 〇 |
suffix参数可用于模糊、旋转等特殊处理,具体请参考《七牛 CDN 开发者文档》。adapt图片尺寸是否适配设备屏幕大小,指令参数会覆盖全局配置,例如:当全局配置adapt: true时,指令参数adpat: false,那么该图片不会根据设备viewport调整尺寸。defer延迟加载的含义,当defer: false时,图片在v-img指令的bind钩子函数中加载,当defer: true时,又分两种情况,图片在首屏和不在首屏中。在首屏中的图片会在v-img指令的inserted钩子函数中加载,非首屏的图片将等待defer: false和首屏中图片都加载完全后才加载。delay延迟加载最大等待时长,默认值5000ms。/urlFormatter可以不依赖组件更新让 src 属性适配 CDN 源更新或者添加自定义参数,举例:七牛云的 imageMogr1 => imageMogr2。
npm install # 安装依赖
npm run dev # 构建文件
npm run test # 单元测试- 提交代码前请确保已通过测试。
- 更多细节请参考《饿了么开源项目贡献指南》。
MIT