vue項(xiàng)目實(shí)現(xiàn)圖片懶加載的簡(jiǎn)單步驟
1、安裝vue-lazyload插件
npm install vue-lazyload --save-dev
2、在main.js中進(jìn)行引用
import VueLazyload from "vue-lazyload";
Vue.use(VueLazyload);
//或者自定義配置插件
Vue.use(VueLazyload, {
preLoad: 1.3,
error: require('../src/assets/image/error.png'),
loading: require('../src/assets/image/loading.gif'),
attempt: 1
})
注意:
這里存在一個(gè)坑,當(dāng)圖片放在 assets文件下 的時(shí)候,要使用上面的這種 require(‘相對(duì)路徑’)的寫法來進(jìn)行引入。當(dāng)圖片放在 static文件下 的時(shí)候就可以直接寫路徑來進(jìn)行引入,像下面的寫法一樣。
static文件圖片引入方法:
Vue.use(VueLazyload, {
preLoad: 1.3,
error: '../src/assets/image/error.png',
loading: '../src/assets/image/loading.gif',
attempt: 1
})
各個(gè)自定義配置屬性含義:
| key | description | default | options |
|---|---|---|---|
| preLoad | 預(yù)壓高度比例 | 1.3 | Number |
| error | src of the image upon load fail(指定加載失敗時(shí)圖片) | ‘data-src’ | String |
| loading | src of the image while loading(指定加載圖片) | ‘data-src’ | String |
| attempt | 嘗試計(jì)數(shù) | 3 | Number |
| listenEvents | 想要監(jiān)聽的事件 | [‘scroll’, ‘wheel’, ‘mousewheel’, ‘resize’, ‘animationend’, ‘transitionend’, ‘touchmove’] | Desired Listen Events |
| adapter | 動(dòng)態(tài)修改元素屬性 | { } | Element Adapter |
| filter | 圖片監(jiān)聽或過濾器 | { } | Image listener filter |
| lazyComponent | lazyload 組件 | false | Lazy Component |
| dispatchEvent | 觸發(fā)dom事件 | false | Boolean |
| throttleWait | throttle wait | 200 | Number |
| observer | use IntersectionObserver | false | Boolean |
| observerOptions | IntersectionObserver options | { rootMargin: ‘0px’, threshold: 0.1 } | IntersectionObserver |
| silent | do not print debug info | true | Boolean |
3、使用(將圖片設(shè)置為懶加載)
<img v-lazy="psdimg" class="psd" />
注意:
當(dāng)遇到是v-for循環(huán)的時(shí)候,或者用div包裹著img的時(shí)候,需要在div上面添加 v-lazy-container="{ selector: ‘img’ }"
<div v-lazy-container="{ selector: 'img' }">
<img data-src="http://aaa.com/img1.jpg">
<img data-src="http://aaa.com/img2.jpg">
<img data-src="http://aaa.com/img3.jpg">
</div>
<!--或者這種:-->
<div v-lazy-container="{ selector: 'img' }" v-html="content">
</div>
如果是這種情況的話,一定要使用 data-src 來指定路徑,而不使用v-lazy。因?yàn)槿绻褂玫氖莢-lazy的話,拿到了圖片地址也會(huì)一直顯示不出來。
總結(jié)
到此這篇關(guān)于vue項(xiàng)目實(shí)現(xiàn)圖片懶加載的文章就介紹到這了,更多相關(guān)vue圖片懶加載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3+vite+ts使用require.context問題
這篇文章主要介紹了vue3+vite+ts使用require.context問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
vue中watch的實(shí)際開發(fā)學(xué)習(xí)筆記
watch是Vue實(shí)例的一個(gè)屬性是用來響應(yīng)數(shù)據(jù)的變化,需要在數(shù)據(jù)變化時(shí)執(zhí)行異步或開銷較大的操作時(shí),這個(gè)方式是最有用的,下面這篇文章主要給大家介紹了關(guān)于vue中watch的實(shí)際開發(fā)筆記,需要的朋友可以參考下2022-11-11
vue中v-for循環(huán)給標(biāo)簽屬性賦值的方法
這篇文章主要介紹了vue中v-for循環(huán)給標(biāo)簽屬性賦值的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10
webpack + vue 打包生成公共配置文件(域名) 方便動(dòng)態(tài)修改
這篇文章主要介紹了webpack + vue 打包生成公共配置文件(域名) 方便動(dòng)態(tài)修改,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
vue+canvas實(shí)現(xiàn)移動(dòng)端手寫簽名
這篇文章主要為大家詳細(xì)介紹了vue+canvas實(shí)現(xiàn)移動(dòng)端手寫簽名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
vue 項(xiàng)目接口管理的實(shí)現(xiàn)
在vue開發(fā)中,會(huì)涉及到很多接口的處理,當(dāng)項(xiàng)目足夠大時(shí),就需要定義規(guī)范統(tǒng)一的接口,本文就來介紹一下vue 項(xiàng)目接口管理,具有一定的參考價(jià)值,感興趣的小伙伴可以一起來了解一下2019-01-01
VUE-Table上綁定Input通過render實(shí)現(xiàn)雙向綁定數(shù)據(jù)的示例
今天小編就為大家分享一篇VUE-Table上綁定Input通過render實(shí)現(xiàn)雙向綁定數(shù)據(jù)的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08

