# react.strictMode

8개의 포스트
post-thumbnail

[React] WebStorm으로 실행 시 콘솔 로그 여러번 찍히는 이유

웹스톰으로 리액트 프로젝트를 생성해 예제를 만들어 실행 해보면 찍히면 안되는 콘솔 로그까지 마구잡히로 찍히고, 두번씩 찍히는 것을 경험한적이 있을것이다. >이유는 React.StrictMode 때문이다. 해당 모드가 존재하는 이유는 다음과 같다. 안전하지 않은 생명주기를 사용하는 컴포넌트 발견 레거시 문자열 ref 사용에 대한 경고 권장되지 않는 findDOMNode 사용에 대한 경고 예상치 못한 부작용 검사 레거시 context API 검사 StrictMode는 개발 환경에서만 실행이 된다. 그렇다면 운영환경으로 실행하는 방법이란 뭘까? webstorm의 터미널에서 명령어를 실행 해보자. 위와같이 빌드가 완료되었다는 문구를 볼 수 있다. 이후 터미널에서 명령어를

2023년 3월 31일
·
0개의 댓글
·
post-thumbnail

React18의 strictMode와 react-beatiful-dnd

현재 진행하고 있는 프로젝트에서 DND 기능을 다시 만들어볼 기회가 생겼는데, 계속해서 DroppableId를 찾지 못하는 에러가 발생했다. TR&DR requestAnimationFrame을 불러 paint 이후에 Droppable을 등록하면 StrictMode를 해제하지 않아도 사용할 수 있다. 문제 자체는 쉽게 찾을 수가 있었는데, 현재 프로젝트의 리액트 버전 18의 StrictMode가 문제를 일으킨다는 것. react 18의 StrictMode에서는 이전 버전들과 다르게 디버깅 목적을 위해 라이프사이클을 의도적으로 두 번 실행시키는데, 그 부분에서 등록된 Droppable의 ref 자체가 사라지는 이슈가 생겼던 것이었다. React Docs에서는 version 18.의 St

2023년 2월 22일
·
1개의 댓글
·
post-thumbnail

[React] console.log가 두번 찍히는 이유?

문제현상 프로젝트를 진행하던 도중 한번만 실행되어야 할 useEffect 속 console.log가 콘솔창에서 두번씩 출력되는 현상을 발견하게 되었습니다. 구현을 하는데 있어 문제가 없었으나 이유를 알고싶어서 검색해본 결과 React.StrictMode 때문이라는것을 알게되었습니다. React.StrictMode란? 자바스크립트에서는 엄격 모드가 존재하는데, 코드 파일 상단에 use strict 를 써 놓으면 자바스크립트를 실행할 때 조금 더 엄격하게 코드를 검사합니다. 리액트도 이처럼 유사한 목적으로 사용되는

2022년 12월 9일
·
0개의 댓글
·
post-thumbnail

[221031] 오늘의 배움(TIL) - React

🔸 React > * React의 대표적인 특징 중 선언형 프로그래밍은 무엇을 의미하는가? > > : React는 선언형 프로그래밍 방식을 지향하고 있음, 선언형 프로그래밍이란 절차를 구체적으로 기술하지 않고 추상화시켜서 사용하는 방식 > : 다만 명령형 프로그래밍 방식을 완전히 배제할 수 없기 때문에 필요하다면 부분적으로 명령형 프로그래밍 방식 사용 > * React의 대표적인 특징 중 컴포넌트 시스템은 무엇을 의미하는가? > > : 또한 React는 컴포넌트 기반으로 구현할 수 있음, 즉 작은 하위 컴포넌트 단위를 합쳐서 더 큰 상위 컴포넌트를 생성하고, 이를 바탕으로 템플릿, 페이지, 애플리케이션까지 확장하는 구조 > : 이러한 구조는 아원자 단위부터 디자인을 설계하는 아토믹 디자인과도 상응하는 부분이 있으므로 디자인 분야와 협업하기 좋음 > * React의 대표적인 특징 중 멀티 플랫폼 지원은 무엇을 의미하는가? > > : Re

2022년 10월 31일
·
0개의 댓글
·

React.StrictMode , ReactDOM.render

ReactDOM.render 컴포넌트를 페이지에 렌더링하는 역할을 한다. 첫 번째 파라미터: 페이지에 렌더링할 내용(JSX 형태로 작성) 두 번쨰 파라미터: 해당 JSX를 렌더링할 document 내부 요소를 설정한다. > React.StrictMode 리액트 프로젝트에서 리액트의 레거시 기능들을 사용하지 못하게 하는 기능 > 출처 및 참고문헌 도서 "리액트를 다루는 기술"

2022년 10월 15일
·
0개의 댓글
·
post-thumbnail

React - consol.log 두번 출력?

React를 공부하며 console.log로 확인하고 있었는데 실행은 너무 잘되는데 console.log가 두번씩 출력되는 이유가 너무 궁금했다. >프로젝트의 src/index.js에서 태그로 이 감싸져있으면 개발모드에서 (개발 단계시 오류를 잘 잡기위해) 두 번씩 렌더링됩니다. 출처: https://www.inflearn.com/questions/510296 index.js에 가 있었고 이를 제거하니 console.log가 한 번씩 출력된다!! ![]

2022년 10월 15일
·
0개의 댓글
·
post-thumbnail

[리액트를 다루는 기술] ReactDom.render와 React.StrictMode

ReactDom.render 컴포넌트를 페이지에 렌더링하는 역할 파라미터 첫 파라미터는 렌더링할 내용 JSX 형태로 작성 두 번째 파라미터는 해당 JSX를 렌더링할 document 내부 요서 설정 root는 public/index.html에 있음 React.StrictMode 문자열 등 나중에는 완전히 사라지게 될 옛 기능을 사용했을 때 경고 출력

2022년 9월 1일
·
0개의 댓글
·

TIL(2020.12.28)

1. package.json npm 프로젝트 진행 시 init(초기화)단계 이후 작성되는 파일 내 프로젝트의 카탈로그라고 할 수 있음. 카탈로그만 봐도 어떤 제품에 대해 파악할 수 있는 것처럼 package.json만 봐도 어떤 모듈이 포함되어있는지 알 수 있다. 간단히 몇 가지 특성만 알아보자면 1) dependencies 해당 프로그램이 실행되기 위해 필요한 모듈 목록 2) scripts npm으로 실행시킬 수 있는 명령어. 명령어: 동작 형식 2. boilerPlate 프로젝트를 시작할 때 기본이 되는 템플릿. 상용구 코드라고 부르기도 함. 작은 수정만으로 여러 곳에 활용 가능한 코드 등을 뜻하기도 함. 반복되지만 자주 쓰이는 형태를 자동화한다는 것이 핵심. 보일러 플레이트 기본 골자 . ├── css (이 디렉토리는 모든 프로젝트들의 CSS 파일을 포함) │ ├──

2020년 12월 28일
·
0개의 댓글
·