[React] CRA 후 console.log가 2번씩 찍히는 현상

Canbu·2022년 6월 26일
0

React 프로젝트를 새로 생성할 떄 CRA는 매우 유용하다.
귀찮은 설정들을 일일이 하지 않게 해주니까 약간 Spring boot 같은 느낌이다.

일단 하나 만들어보자

npx create-react-app my-app
cd my-app
npm start

my-app 이라는 리액트 앱을 하나만들고 필요없는 파일들을 모두 지운 후 App.js 랑 index.js만 남겨보자.

App.js

import { useState } from "react";

function App() {
  
  const [toDo, setToDo] = useState("");
  const onChange = (event) => setToDo(event.target.value);   
  console.log(toDo);
  return (
    <div>
      <input
        onChange = {onChange}
        value = {toDo}   
        type ="text" 
        placeholder="Write your to do.."/>
    </div>
  );
}

export default App;

App.js쪽에 useStat를 사용하여 toDo, setToDo 를 선언해주고 input 요소를 하나 생성하였다.

index.js

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';


const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>, 
);

npm start로 실행하고 개발자 도구에 찍히는 console.log를 살펴보면!

console.log 가 2번씩 찍히는 것을 볼수 있다.
결론부터 말하자면 바로 index.js 내 있는 StrickMode 때문이었다.

  <React.StrictMode>
    <App />
  </React.StrictMode>, 

StrickMode를 지우고 실행해보면 console.log 되는 부분이 정상적으로 한번씩 출력되는 것을 볼 수 있다.

StrickMode 는 create-react-app 을 사용하여 만들경우 같이 생성되는 코드인데 개발모드에서만 동작하며 내 코드를 검사해주는 역할을 수행한다.
이슈사항이 될만한 부분들을 미리 잡아준다고 한다

StrickMode 공식문서 바로가기!

console.log가 2번씩 출력된것이 의아했다면 CRA를 통해 프로젝트를 생성했을 경우 StrickMode를 지워보자

profile
Code With Money

0개의 댓글

Powered by GraphCDN, the GraphQL CDN