190508 TIL Vue.js - Infinite Loading
May 8, 2019
»
1막,
TIL (Today I Learned),
Vue.js
Vue.js - Infinite Loading
<template>
<div class="observer"/>
</template>
<script>
export default {
name: 'Observer',
props: ['options'],
data: () => ({
observer: null,
}),
mounted() {
const options = this.options || {};
this.observer = new IntersectionObserver(([entry]) => {
if (entry && entry.isIntersecting) {
this.$emit('intersect');
}
}, options);
this.observer.observe(this.$el);
},
destroyed() {
this.observer.disconnect();
},
};
</script>
<style scoped>
.observer {
height: 2px;
position: relative;
z-index: -9999;
}
</style>
- 제대로 작동이 안되서 찾아보니
Intersection Observer
는 height 같은 값이 무조건 있어야 한다고! height을 추가했더니 잘 작동됐다.