在用VUE作項目開發的過程當中,首頁用到了懶加載的方法,查找了一些方法,以爲官網寫得太複雜,有一篇博客不錯(https://www.cnblogs.com/xyyt/p/7650539.html),可是有些地方又與個人項目有些不一樣,故此記錄一下下~實在是超級簡單的css
先展現效果:html
一. vue lazyload插件:vue
插件地址:https://github.com/hilongjw/vue-lazyloadwebpack
demo:http://hilongjw.github.io/vue-lazyload/git
二. 簡單使用實例:github
當第一次看官網時,相信大多數人想要快速使用某個功能,追求開發速率,故不可能花費大量時間研究官方文檔,因此寫一些步驟在下方,會一直順利應用到項目中。web
使用很是簡單npm
1. 安裝插件:api
1 npm install vue-lazyload --save-dev //開發環境安裝
2 npm install vue-lazyload -S //開發環境安裝
2. main.js引入插件:dom
1 import VueLazyLoad from 'vue-lazyload' 2 Vue.use(VueLazyLoad,{ 3 error:require('./statics/site/imgs/erro.jpg'), 4 loading:require('./statics/site/imgs/load.gif') 5 })
3. vue文件中將須要懶加載的圖片綁定 v-bind:src 修改成 v-lazy
1 <div class="img-box"> 2 <img v-lazy =subitem.img_url> 3 </div>
4.我須要在webpack.config.dev.js配置文件中配置一下
1 module: { 2 rules: [{ 3 test: /\.vue$/, 4 use: ['vue-loader'] 5 }, 6 { 7 test: /\.css$/, 8 use: ['style-loader', 'css-loader'] 9 }, 10 { 11 test: /\.(ttf|eot|woff|svg|jpg|png|gif)$/, 12 use: [{ 13 loader: 'url-loader' 14 }] 15 } 16 ] 17 },
四.功能擴展:
圖片懶加載的簡單效果已經實現了,而後就能夠按這開發文檔的api進行擴展了:
key | description | default | options |
---|---|---|---|
preLoad |
proportion of pre-loading height(預加載高度比例) | 1.3 |
Number |
error |
src of the image upon load fail(圖片路徑錯誤時加載圖片) | 'data-src' |
String |
loading |
src of the image while loading(預加載圖片) | 'data-src' |
String |
attempt |
attempts count(嘗試加載圖片數量) | 3 |
Number |
listenEvents |
events that you want vue listen for (想要監聽的vue事件) 默認['scroll']能夠省略, 當插件跟頁面中的動畫或過渡等事件有衝突是, 能夠嘗試其餘選項 |
|
Desired Listen Events |
adapter |
dynamically modify the attribute of element (動態修改元素屬性) |
{ } |
Element Adapter |
filter |
the image's listener filter(動態修改圖片地址路徑) | { } |
Image listener filter |
lazyComponent |
lazyload component | false |
Lazy Component |
dispatchEvent |
trigger the dom event | false |
Boolean |
throttleWait |
throttle wait | 200 |
Number |
observer |
use IntersectionObserver | false |
Boolean |
observerOptions |
IntersectionObserver options | { rootMargin: '0px', threshold: 0.1 } | IntersectionObserver |