번외 ) loading

2024. 7. 12. 18:31React

Fetch나 Axios 를 사용할 때 데이터를 받아오는 시간 동안 띄울 화면을 만들기

 

- 사용자에게 화면이 보여지기 전에 로딩중이라는 표시를 보여줌으로써 사용자는 조금 더 기다릴 수 있는 시간을 갖게 됨
- 처음엔 로딩을 true설정해서 임시 화면을 띄워놓고 데이터를 모두 가져오면 false로 변경

      => 기존 리턴에 작성한 html을 보여줌

 

const [loading, setLoading] = useState(true);

useEffect(() => {
    axios.get('https://yts.mx/api/v2/list_movies.json?minimum_rating=9&sort_by=year')

    .then(res => {
        setMovies(res.data.data.movies) // {}들에서 data를 가져 옴

        //영화 데이터 모두 가져오면 로딩중을 false로 변경
        setLoading(false);
    })
    .catch(e => {
        alert("에러 발생 : " + e);
    })
}, []);


if(loading) return <div>로딩중입니다.</div>;

if(loading) {
    return (
        <div>로딩중입니다.</div>
    )
}

둘이 같음
-> react에서도 innerHTML을 사용할 수 있음

'React' 카테고리의 다른 글

PagiNation 2  (0) 2024.07.12
PagiNation 1  (0) 2024.07.12
Fetch  (0) 2024.07.12
Ajax와 Fetch  (0) 2024.07.12
Axios 2  (0) 2024.07.11