티스토리 뷰
[ useCallback ]
useCallback 은 함수를 재사용할 때 사용
첫번째 인자로 넘어온 함수를, 두번째 인자로 넘어온 배열 내의 값이 변경될 때까지 저장해놓고 재사용할 수 있게 해준다.
import { useEffect, useState, useCallback } from "react";
import { useParams } from "react-router-dom";
function Detail() {
const [loading, setLoading] = useState(true);
const [detailMovie, setDetailMovie] = useState({});
const {id} = useParams();
const getMovieDetail = useCallback(async() => {
const json = await (
await fetch(`https://yts.mx/api/v2/movie_details.json?movie_id=${id}`)
).json();
setDetailMovie(json.data.movie);
setLoading(false);
}, [id]);
useEffect(() => {
getMovieDetail();
}, [getMovieDetail]);
/*
const getMovieDetail = async() => {
const json = await (
await fetch(`https://yts.mx/api/v2/movie_details.json?movie_id=${id}`)
).json();
setDetailMovie(json.data.movie);
setLoading(false);
};
useEffect(() => {
getMovieDetail();
}, []);
*/
return (
<div>
{loading ? (
<h1>Loading.....</h1>
) : (
<div>
<h1>detail</h1>
<p>{detailMovie.title}</p>
<p>{detailMovie.description_intro}</p>
</div>
)}
</div>
);
}
export default Detail;
'리액트 스터디' 카테고리의 다른 글
[React] 14. 리액트 스터디 - github 배포 테스트 (0) | 2023.01.25 |
---|---|
[React] 12. 리액트 스터디 - react router (0) | 2023.01.05 |
[React] 11. 리액트 스터디 - fetch (0) | 2023.01.04 |
[React] 10. 리액트 스터디 - 배열 (0) | 2023.01.03 |
[React] 9. 리액트 스터디 - effect (0) | 2023.01.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 처음시작은어색할지도몰라
- 공통스크립트
- centOS7
- 신입사원태복이
- 수정사항
- 스프링프로젝트
- 1주차끝
- 리액트스터디
- 깃헙배포
- 세션
- java
- 스프링
- 프로젝트연습
- 게시판구현
- 신입
- 스터디
- 메이븐설정
- gitlab삭제
- Oracle
- BCryptPasswordEncoder
- 스프링시큐리티
- 권한분리
- 로그인
- springboot
- 리액트
- 프로젝트
- 장바구니
- 신입사원태복
- 리액트오류
- 태복
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함