1.了解useIntersectionObserver()
这里用到了@vueuse/core
中的useIntersectionObserver()
从vueuse的官网中学习跳转
1. stop 是一个函数。如果调用它,就会停止观察
2. target 是观察的目标容器 dom对象 | 组件对象
3. isIntersecting 是一个bool值,表示是否进入可视区域。 true表示 进入 false表示 移出
const { stop } = useIntersectionObserver(
target, // target 是vue的对象引用。是观察的目标
// isIntersecting 是否进入可视区域,true是进入 false是移出
// observerElement 被观察的dom
([{ isIntersecting }], observerElement) => {
// 在此处可根据isIntersecting来判断,然后做业务
},
)
2.通用逻辑封装
import { ref } from 'vue'
import { useIntersectionObserver } from '@vueuse/core'
const useLazyData = (fn) => {
const target = ref(null)
const { stop } = useIntersectionObserver(
target, // target 要观察的目标
([{