카테고리 없음

Debugging React Apps [React-The Complete Guide]

co-yong 2024. 9. 6. 00:20

 Finding & Fixing Errors

  • Making Sense of React Error Messages
  • Finding Logical Errors via the Browser DevTools & Debugger
  • Enabling React's Strict Mode
  • Using the React DevTools for Application Analysis & Manipulation

 

 

*콘솔에서 오류 메세지가 출력되는 경우

오류 메세지 뒤의 stack-trace를 통해 문제가 발생하는 코드의 부분을 찾아갈 수 있음.

ex) Value값 undefined 가져올 수 없는 case

초기값 없을 시 if return을 통해 예외 처리 

 

 

 

*코드에 논리적 오류가 있는 경우 

콘솔에 오류 메세지가 출력되지 않음.

value 값을 못 읽는 경우가 아니라, 잘못된 값을 가져오거나, NaN처리되는 경

 

실제 실행되는 과정에서의 중간 값과 실행 시점을 살펴보아야 함.

=> 리액트 프로젝트 브라우저에서 확인 가능. Sources 창 -> loacalhost:5173 /src/  

(예상 에러 코드파일) App.jsx 가 아닌 App.jsx로 들어가서 줄 번호를 클릭하여 중단점 설정. 

디버그를 진행하며, 현재 실행중인 코드위치, 변수들의 값을 확인해갈 수 있음

 

ex) JS의 수학적 계산에서 문자열과 숫자값을 혼용하는 경우 이상한 값이 결과로 나올 수 있음

 => 문자열에 +기호를 붙여줌으로써 숫자로 변환. 

 

React의 Strict Mode 

import ReactDOM from 'react-dom/client';
import {StrictMode} from 'react';

import App from './App';
import './index.css';

ReactDOM.createRoot(document.getElementById('root')).render(
	<StrictMode>
		<App />
	</StrictMode>
);

보통 index.jsx에서 App component에 적용시키지만, 원한다면 일부에만 적용시킬 수 있음.

리액트에서 import 하는 component 중 1

 

 모든 컴포넌트 함수를 두번씩 실행 함 .

배포 전 개발 단계에서만, 서버에 업로드하면 더 이상 두 번 실행하지 않음.

   => 에러를 찾기 보다 쉬워짐. 

ex) 사용하는 배열의 초기화가 누락된 건에 대하여, 

      에러 발생 부분의 컴포넌트가 2개 출력되기에 즉각적으로 확인해 볼 수 있음. 

 

 

React DevTools

 추가 확장 프로그램 React DevTools를 통해 Components와 Profiler 두 페이지를 활용할 수 있음

 

Components : App Component Tree를 보여줌. UI의 어떤 부분이 어떤 컴포넌트에서 렌더링되는지 볼 수 있음

                        컴포넌트 클릭 시, 어떤 속성을 가지는지, 해당 속성이 어떤 타입인지... etc 

                         값을 바꾸며 UI에 적용되는 모습들을 즉시 확인 가능.

                         사용되는 hooks들 또한 밑 부분에서 확인 가능. 

Profiler : React Application 내부 성능 문제들을 찾고 다루는 것을 도와줌.

 

 

 


 

React Developer Tools - Chrome 웹 스토어

Adds React debugging tools to the Chrome Developer Tools. Created from revision ccb20cb88b on 7/3/2024.

chromewebstore.google.com