ckgl/node_modules/vant/es/lazyload/vue-lazyload/index.mjs
2024-12-21 13:52:42 +08:00

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
};