Vue component render when visible ποΈβ‘οΈ
npm install v-lazy-component[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![changelog][changelog-src]][changelog-href]
[![License][license-src]][license-href]
v-lazy-component
Vue component render when visible ποΈβ‘οΈ
js
yarn add v-lazy-component # or npm i v-lazy-component
`
$3
#### Global Register
`js
import { createApp } from 'vue'
import App from './App.vue'
import LazyComponent from 'v-lazy-component'
const app = createApp(App)
app.use(LazyComponent)
app.mount('#app')
`
#### Local Register
`html
`
#### Via CDN
`js
`
$3
#### Global Register
`js
import Vue from "vue";
import LazyComponent from "v-lazy-component/vue2";
Vue.use(LazyComponent);
`
#### Local Register
`js
import LazyComponent from "v-lazy-component/vue2";
export default {
components: {
LazyComponent
}
}
`
#### Via CDN
`js
`
$3
`html
Loading...
`
idle variant
`html
....
Loading...
`
#### Props
|Name|Description|Type|Default
|--|--|--|--|
|wrapper-tag |Html tag of lazy component|String | div
|is-intersected |Do not wait observe, Force render |Boolean | false
|idle |Do not use observer, wait is-intersected prop changes for render |Boolean | false
|root-margin |Intersection Observer API doc|String | 0px 0px 0px 0px
|threshold |Intersection Observer API doc|Number, Array| 0
See Intersection Observer API doc
#### Slots
|placeholder| Content that is loaded as a placeholder until it comes into view |
|--|--|
#### Events
|intersected| dispatch event when visible |
|--|--|
#### CSS Selectors
`css
.v-lazy-component.v-lazy-component--loading {
filter: blur(20px);
}
.v-lazy-component.v-lazy-component--loaded {
filter: blur(0);
transition: filter 1s;
}
`
---
Development
$3
`bash
yarn build:vue3 # build for vue3
`
`bash
Serve
cd dev/vue3
yarn install
yarn serve
`
$3
`bash
yarn build:vue2 # build for vue2
`
`bash
Serve
cd dev/vue2
yarn install
yarn serve
`
$3
`bash
yarn build # build for vue2 and vue3
``