Skip to content

zengyuangai/vue-img

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vue-img

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

About

hash2path wrapper for vue.js

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%