vue-laze
Version:
Lazily render components in React
2 lines (1 loc) • 443 B
JavaScript
import{readonly as u,ref as l,watchEffect as v}from"vue";function a(e){let r=l(!1),t=l(null);return v(i=>{r.value=!1;let f=!1;if(e&&e.refresh&&(f=typeof e.refresh=="boolean"?e.refresh:e.refresh.value),t.value){let o=t.value,n=new IntersectionObserver(c=>{for(let s of c)f?r.value=s.isIntersecting:s.isIntersecting&&(r.value=!0,n.disconnect())});n.observe(o),i(()=>{n.unobserve(o),n.disconnect()})}}),{ref:t,visible:u(r)}}export{a as default};