项目作者: wuyxp

项目描述 :
提供一个可以对背景图片延迟加载,并且动态选择加载更合适(webp)格式的图片。
高级语言: TypeScript
项目地址: git://github.com/wuyxp/vue-lazy-background-component.git
创建时间: 2019-03-24T13:51:25Z
项目社区:https://github.com/wuyxp/vue-lazy-background-component

开源协议:

下载


vue-lazy-background-component

提供一个可以对背景图片延迟加载,并且动态选择加载更合适(webp)格式的图片。

功能

本组件提供了,代替使用背景图片的div,可以对背景图片进行懒加载处理,具体步骤是

  1. 先根据传入图片的路径,计算出对应的小图和webp图片
  2. 先加载小图
  3. 判断浏览器是否支持webp
  4. 根据上面的判断展示对应的图片

配置

下载包与安装

  1. npm install vue-lazy-background-component --save
  2. 或者
  3. syarn add @belllabs/vue-lazy-background-component --save
  4. ...main.js
  5. import LazyBackground from 'vue-lazy-background-component'
  6. Vue.use(LazyBackground)

上面即可安装完毕

使用

普通vue项目使用

  1. <LazyBackground
  2. class="test"
  3. :src = "require('./images/logo.jpg')"
  4. >
  5. 测试地址11123
  6. </LazyBackground>

tsx 项目使用(本项目使用tsx完成)

  1. <LazyBackground
  2. cssStyle={style.container}
  3. className={appStyle.box}
  4. src={require('./assets/bg.jpg')}
  5. >
  6. 使用全部功能的组件
  7. </LazyBackground>
  8. <LazyBackground
  9. cssStyle={style.container}
  10. className={[appStyle.box]}
  11. miniOptions={false}
  12. src={require('./assets/bg.jpg')}
  13. >
  14. 不需要加载小图的组
  15. </LazyBackground>
  16. <LazyBackground
  17. cssStyle={style.container}
  18. webpOptions={false}
  19. src={require('./assets/bg.jpg')}
  20. >
  21. 不需要加载webp的组件
  22. </LazyBackground>
  23. <LazyBackground
  24. cssStyle={style.container}
  25. miniOptions={{
  26. src: src => src
  27. }}
  28. webpOptions={{
  29. src: src => src
  30. }}
  31. src={require('./assets/bg.jpg')}
  32. >
  33. 分别设置小图和webp图片的路径
  34. </LazyBackground>

配置说明

  1. cssStyle //接受一个style对象,添加到外层的div上
  2. className // 接受一个字符串或者数组,添加到外层的div上
  3. src // 默认图片路径
  4. miniOptions // 配置小图路径,默认接受一个含有src的对象,src是一个函数,接受处理过的url地址,默认小图的名称是原图后加 -min
  5. webpOptions // 和上面一样,默认webp的图片名称是将后缀修改为 .webp
  6. 上面两个参数,如果不需要则直接设置成false,这样组件就不会加载对应图片,防止404出现

注意src参数:如果是本地图片则使用require,因为要触发url-loader或者file-loader。如果是绝对路径或者cdn则直接赋值,但是确保对应目录上有小图和webp图片

重要:
组件所需要的图片,全部本应该都是根据原图自动生成出来,当然如果设计同学提供更好,如果不提供,那么还好npm上有另外一个插件,可以生成和这个组件名字和功能特别匹配的webpack-plugin

https://www.npmjs.com/package/webpack-plugin-image-transform-webp-and-mini

对于这两个插件如有任何疑问
欢迎提一些issue
我的QQ:956826374