mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
40 lines
1.0 KiB
JavaScript
40 lines
1.0 KiB
JavaScript
import Lazy from './lazy';
|
|
import LazyComponent from './lazy-component';
|
|
import LazyContainer from './lazy-container';
|
|
import LazyImage from './lazy-image';
|
|
|
|
export const Lazyload = {
|
|
/*
|
|
* install function
|
|
* @param {App} app
|
|
* @param {object} options lazyload options
|
|
*/
|
|
install(app, options = {}) {
|
|
const LazyClass = Lazy();
|
|
const lazy = new LazyClass(options);
|
|
const lazyContainer = new LazyContainer({ lazy });
|
|
|
|
app.config.globalProperties.$Lazyload = lazy;
|
|
|
|
if (options.lazyComponent) {
|
|
app.component('LazyComponent', LazyComponent(lazy));
|
|
}
|
|
|
|
if (options.lazyImage) {
|
|
app.component('LazyImage', LazyImage(lazy));
|
|
}
|
|
|
|
app.directive('lazy', {
|
|
beforeMount: lazy.add.bind(lazy),
|
|
updated: lazy.update.bind(lazy),
|
|
unmounted: lazy.remove.bind(lazy),
|
|
});
|
|
|
|
app.directive('lazy-container', {
|
|
beforeMount: lazyContainer.bind.bind(lazyContainer),
|
|
updated: lazyContainer.update.bind(lazyContainer),
|
|
unmounted: lazyContainer.unbind.bind(lazyContainer),
|
|
});
|
|
},
|
|
};
|