1. 程式人生 > >vue中使用圖片懶載入

vue中使用圖片懶載入

使用方式

使用vue的 vue-lazyload 外掛
外掛地址:

https://www.npmjs.com/package/vue-lazyload

案例

Installation 安裝方式

npm


$ npm i vue-lazyload -D

CDN

<script src="https://unpkg.com/vue-lazyload/vue-lazyload.js"></script>
<script>
  Vue.use(VueLazyload)
  ...
</script>

用法

main.js 在入口檔案


import Vue from 'vue'
import
App from './App.vue' import VueLazyload from 'vue-lazyload' //引入這個懶載入外掛 Vue.use(VueLazyload) // 或者新增VueLazyload 選項 Vue.use(VueLazyload, { preLoad: 1.3, error: 'dist/error.png', loading: 'dist/loading.gif', attempt: 1 }) new Vue({ el: 'body', components: { App } })

在入口檔案新增後,在元件任何地方都可以直接使用把 img 裡的:src -> v-lazy

 <div class="pic">
    <a href="#"><img :src="'/static/img/' + item.productImage" alt=""></a>
</div>

把之前專案中img 標籤裡面的 :src 屬性 改成 v-lazy 
 <div class="pic">
    <a href="#"><img v-lazy="'/static/img/' + item.productImage" alt=""></a>
</div>

引數選項說明

keydescriptiondefaultoptions
preLoadproportion of pre-loading height1.3Number
error當載入圖片失敗的時候'data-src'String
loading當載入圖片成功的時候'data-src'String
attempt嘗試計數3Number
listenEvents想要監聽的事件['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove']
lazyComponentlazyload componentfalse
dispatchEvent觸發dom事件falseBoolean
throttleWaitthrottle wait200Number
observeruse IntersectionObserverfalseBoolean
observerOptionsIntersectionObserver options{ rootMargin: '0px', threshold: 0.1 }

想要監聽的事件

您可以通過傳遞陣列來配置想要使用vue - lazyload的事件
監聽器的名字。

Vue.use(VueLazyload, {
  preLoad: 1.3,
  error: 'dist/error.png',
  loading: 'dist/loading.gif',
  attempt: 1,
  // the default is ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend']
  listenEvents: [ 'scroll' ]
})