vue中实现图片懒加载自定义指令
时间: 2024-06-13 17:09:33 浏览: 193
以下是Vue中实现图片懒加载自定义指令的方法:
1. 首先,在项目中创建一个自定义指令文件lazyLoadImage.js,代码如下:
```javascript
export default {
inserted: function (el, binding) {
let lazyImageObserver = new IntersectionObserver(function(entries, observer) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
el.src = binding.value
lazyImageObserver.unobserve(el)
}
})
})
lazyImageObserver.observe(el)
}
}
```
2. 在main.js中引入自定义指令文件,并注册为全局指令:
```javascript
import lazyLoadImage from './directive/lazyLoadImage'
Vue.directive('lazyload', lazyLoadImage)
```
3. 在需要懒加载的图片标签上使用v-lazyload指令,并将图片的真实地址绑定到指令的值上:
```html
<img v-lazyload="'/path/to/real/image.jpg'" src="/path/to/placeholder/image.jpg">
```
这样,当图片进入可视区域时,指令会将真实地址赋值给图片的src属性,实现图片的懒加载。
阅读全文