Movie.js에서 비동기 json loading이 완료되면 app.js의 특정 div의 class명을 바꿔주고싶었다.
1. app.js에서 movie.js에 함수 넘기기(props 이용)
2. async json loading이 완료되면 app.js에 알리기
3. 특정 변수명을 useState를 이용해서 추가하기
useState 사용법을 기록해보자면 아래와 같다.
const [<VAR_NAME>, <SETTER_NAME>] = useState(<INIT_VALUE>);
useState로 setUsingGradAnim이라는 Setter함수를 선언했다. 그래서 movie.js로부터 loading complete 신호를 반았을 때 setUsingGradAnim(); 이라는 함수로 값의 변경이 가능한 것이다.
그리고 위와같이 useEffect의 두 번째 인자로 배열의 요소를 넣으면, 해당 요소가 변경될때만 hook이 발생하여 화살표함수가 동작한다.
이렇게 변수값을 hook을 이용해 변경하고나면, 특정 div의 class명이 isUsingGradAnim에 의해 동적으로 결정된다.
최종 결과물은 위의 gif와 같이 동작한다. json을 로딩중일때는 gradient animation이 수행되고, json loading이 완료되면 회색 배경으로 고정되게된다.
끝.
'소프트웨어 > Web' 카테고리의 다른 글
[React] 함수형 Component에서의 Lifecycle함수 (0) | 2021.03.25 |
---|---|
[React] Child Selectors(css) (0) | 2021.03.19 |
[React] 외부 js의 함수 갖다쓰기 (0) | 2021.03.18 |
[Blog] 소스코드 배경이미지 넣기 (0) | 2021.03.18 |
[React] Project 생성 및 서버 구동 (0) | 2021.03.18 |
[React] 반응형 레이아웃 적용해보기 (0) | 2021.03.16 |
[React] 반응형 사용하기(react-responsive) (0) | 2021.03.16 |