Lazyloading component using Intersection Observer API. This plugin will help you to show and hide component base on viewport showing
npm install vue-lazy-this
#or
yarn add vue-lazy-this
On javascript file
import LazyThis from 'vue-lazy-this'
Vue.use(LazyThis, options)
//or
const DEFAULT_OPT = {
config: {
rootMargin: '50px 0px',
threshold: 0.01
},
minimumIntersectionRatio: 0,
visible: false,
autoUnobserve: true
}
Vue.use(LazyThis, DEFAULT_OPT)
On template
<lazy-this>
<img slot="onEnter" src="https://dummyimage.com/640x4:3/"/>
// In case not show on view port yet
<img slot="onNotEnter" src="https://dummyimage.com/640x4:3/"/>
</lazy-this>
Minimum ratio for intersection for display component
default: 0
Auto UnObserve when Component out of view port. This feature will make component permanently visible after first trigger.
default: true
Support native options for IntersectionObserverAPI follow this link
default: { rootMargin: '50px 0px', threshold: 0.01 }