Skip to content

Instantly share code, notes, and snippets.

@RuslanHolovko
Created June 4, 2020 07:55
Show Gist options
  • Save RuslanHolovko/ff2ee16fa5059438c8feb7057dae274e to your computer and use it in GitHub Desktop.
Save RuslanHolovko/ff2ee16fa5059438c8feb7057dae274e to your computer and use it in GitHub Desktop.
Observer component for vue js
<!-- Observer.vue -->
<template>
<div class="observer"/>
</template>
<script>
export default {
data: () => ({
observer: null,
}),
mounted() {
this.observer = new IntersectionObserver(([entry]) => {
if (entry && entry.isIntersecting) {
this.$emit("intersect");
}
});
this.observer.observe(this.$el);
},
destroyed() {
this.observer.disconnect();
},
};
</script>
How to use in component
<!-- intersectionobserver -->
<observer @intersect="loadPosts" v-if="!showSearch"/>
<!-- intersectionobserver -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment