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)文章
vue element-ui使用required進(jìn)行表單校驗(yàn)時(shí)自定義提示語問題
這篇文章主要介紹了vue element-ui使用required進(jìn)行表單校驗(yàn)時(shí)自定義提示語問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Vue3+Vite實(shí)現(xiàn)動(dòng)態(tài)路由的詳細(xì)實(shí)例代碼
我們?cè)陂_發(fā)大型系統(tǒng)的時(shí)候一般都需要?jiǎng)討B(tài)添加路由,下面這篇文章主要給大家介紹了關(guān)于Vue3+Vite實(shí)現(xiàn)動(dòng)態(tài)路由的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
vue項(xiàng)目中自定義video視頻控制條的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue項(xiàng)目中自定義video視頻控制條的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
elementui實(shí)現(xiàn)標(biāo)簽頁與菜單欄聯(lián)動(dòng)的示例代碼
多級(jí)聯(lián)動(dòng)是一種常見的交互方式,本文主要介紹了elementui實(shí)現(xiàn)標(biāo)簽頁與菜單欄聯(lián)動(dòng)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
Vue快速實(shí)現(xiàn)通用表單驗(yàn)證功能
這篇文章主要介紹了Vue快速實(shí)現(xiàn)通用表單驗(yàn)證功能,本文通過一個(gè)小例子給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
在vue使用clipboard.js進(jìn)行一鍵復(fù)制文本的實(shí)現(xiàn)示例
這篇文章主要介紹了在vue使用clipboard.js進(jìn)行一鍵復(fù)制文本的實(shí)現(xiàn)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01

