37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
import Lazy from "./lazy.mjs";
|
|
import LazyComponent from "./lazy-component.mjs";
|
|
import LazyContainer from "./lazy-container.mjs";
|
|
import LazyImage from "./lazy-image.mjs";
|
|
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)
|
|
});
|
|
}
|
|
};
|
|
export {
|
|
Lazyload
|
|
};
|