안녕하세요. 이번시간에는 React를 사용하면서 유저들에게 더 나은 경험을 제공해주는 스켈레톤 로딩에 대해 알아보도록 하겠습니다!

import React, { useEffect, useState } from "react"; const article = ({ article }: { article: IArticle }) => { // * 초기 loading state를 true로 설정 const [loading, setLoading] = useState(true); // article이 존재해서 로드가 다 되면 loading을 false로 // false가 되면 스켈레톤 이미지가 사라지고 이미지가 노출 // 여기 예제에서는 직관적으로 skeleton이 잘 노출되는지 보기 위해 setimeout을 사용한것입니다. // 실제 개발에서는 onLoad 이벤트를 주어 load가 모두 완료되었을때 loading state를 false해야합니다. // 혹은 IntersectionObserver 같은 api를 사용하여 컨텐츠가 보여져야할 시점에 컨텐츠를 노출시키는 로직을 // 사용하면 됩니다. useEffect(() => { if (article) { setTimeout(() => { setLoading(false); }, 3000); } }, [article]); return ( <> {loading ? ( <SkeletonCard /> ) : ( <> .... 이곳에 정상적으로 노출시킬 컴포넌트를 렌더링 시킵니다. </> )} </> ); }; export default article;
이상 React에서 Skeleton 컴포넌트를 만드는 방법을 간단하게 알아보았습니다!
감사합니다 :)