banner 재질문
324
작성한 질문수 4
banner.js 파일 첨부해드립니다. 콘솔 창을 위해서 몇가지 코드가 추가되어있습니다. 콘솔 창은 f5 이후로 아무것도 건드리지 않았습니다.
- return 직전에 console.log("hi")를 넣었습니다. 콘솔에 실행해본 결과 return 이전의 코드가 실행되기도 전에 hi가 실행된 것을 확인할 수 있었습니다. 왜 이전의 코드가 실행되기도 전에 hi와 return이 먼저 실행되는 걸까요?
- 아무것도 누르지 않은 상태인데
useEffect(() => {fetchData();}, []);에서 dep list가 빈 배열이기 때문에 banner.js 가실행되는 때 딱 한번만 실행된다고 생각했습니다. 하지만 콘솔 창을 보니 다 log가 두번씩 찍혀있는데 이게 왜 그런건가요?

답변 1
0
안녕하세요
1. 자바스크립트 소스코드는 위에서 아래로 실행됩니다. 또한 hi 같은 경우는 함수에 들어있는것도 render부분에 있는것도 useEffect 훅 안에 있는 것도 아니기에 생명주기 실행 순서에 관계 없이 가장 먼저 실행됩니다.
2. useeffect에 있는것이 처음에 두번호출되는 이유는 React StrictMode를 사용하셔서 그렇게 되는 것 입니다.
이것은 개발 단계에서만 발생하며 렌더 단계에서 우발적인 부작용을 찾는 데 도움이 됩니다.
만약에 이걸원치 않으시면 index.js 에 있는 React.StricMode를 없애주시면 됩니다.
감사합니다.
강의 소스 코드 압축 풀기 오류
0
70
1
런타임 에러 ㅠㅠ
0
85
1
강의대로 따라갔는데 에러보다 api키로 들어간 넷플릭스? 그런게 렌더링 되지 않습니다 ㅠ
0
100
1
안녕하세요 개발과 상관없는 질문입니다만
0
111
1
리액트 라우터 관련
0
101
1
react-beatiful-dnd에서 문제가 발생합니다.
0
103
1
react19에서는 react-beautiful-dnd가 설치되지 않습니다.
0
808
1
useEffect로 사용을 해도 되나요?
0
198
1
넷플릭스 오리지널 제외하고 슬라이드가 동작을 안합니다.
0
195
1
react 19의 useActionState가 더이상 isPending은 지원하지 않는 듯합니다
0
279
2
리액트 dockderfile 작성 시 COPY 질문
0
145
1
next.js에서부터는 react query 필요없는지
0
320
1
기능
0
195
1
오류가 안보여요
0
193
1
CSS
0
217
1
local storage
0
208
1
list컴포넌트 생성하기
0
223
1
검색어 입력 후 초기화하는 방법 궁금합니다!
0
331
1
Banner.css에 대해서
0
445
1
플러그인이 추천을 안해줍니다
0
321
1
마이너스버튼 테스트
0
279
2
리액트 서버 실행 오류
0
1156
2
오류메세지는 확인했는데 어떻게 고쳐야 할지 모르겠습니다 ㅠ
0
298
1
creactStore질문이요
1
284
2





