2024/03/08 3

React - memo & useMemo(재랜더링 막기)

memo 를 사용한 자식 컴포넌트 재랜더링 막기 먼저 실험을 위해 자식 컴포넌트와 재랜더링 시키기 위한 state 를 만들어주고, 버튼도 하나 만들어줍니다. Cart.js 이렇게 만들면 실험용버튼 이라는 버튼을 누르면 Cart 라는 컴포넌트가 재랜더링이 될겁니다. 근데 이렇게 부모 컴포넌트가 재랜더링되면 모든 자식 컴포넌트도 같이 재랜더링 됩니다. 그런데 이렇게 모든 자식 컴포넌트가 같이 재랜더링되면 성능저하를 일으킬 수 있습니다. 이런 성능 저하를 막기위해서는 아래와 같이 코드를 작성해줘서 자식 컴포넌트가 재랜더링 되지 않도록 해주면 됩니다. ( 정확히는 자식 컴포넌트를 꼭 필요할 때만 재랜더링 시켜줘라 라는 의미입니다. ) 아래의 코드와 같이 컴포넌트를 생성할 때 memo 함수안에 생성해주시면 됩니다..

JS/React 2024.03.08

React - 개발자 도구 & lazy import

개발자 도구 React Developer Tools react 로 짠 코드인데 html 코드를 보면서 디버깅하는 것이 불편할 수 있는데 React Developer Tools 을 사용하면 Component 로 볼 수 있어서 디버깅을 편리하게 할 수 있습니다. 크롬 웹 스토어에 들어가서 React Developer Tools 를 설치합니다. 설치하고 나면 개발자 도구에 Componet 라고 보일겁니다. 이 기능을 사용하면 해당 컴포넌트의 구조, props, state, hooks 등 여러가지 정보를 한눈에 볼 수 있어서 편리합니다. 또 하나의 기능으로 profiler 라고 있습니다. 이 기능은 성능이 저하되는 컴포넌트를 찾을 때 사용합니다. 왼쪽 상단에 녹화 버튼을 누르고 이 페이지 저 페이지 막 이동을 ..

JS/React 2024.03.08

React - localStorage 활용하기

localStorage 란? DB, 서버 없이 브라우저에 데이터를 반영구적으로 저장할 수 있는 기능입니다. localStorage 의 특징 key: value 형태로 저장할 수 있습니다. ( 이미 존재하는 key 값과 중복되는 key 값으로 데이터를 저장하면 덮어쓰기 됩니다. ) 문자 데이터만 저장할 수 있습니다.( 최대 5MB 까지 저장이 가능합니다. ) 사이트 재접속을해도 남아있습니다. ( 유저가 브라우저를 청소하기 전까지 남아있습니다. ) 지원하는 데이터 타입은 문자열, 숫자, 불린, null, undefined 이고, 모두 문자열 형식으로 저장됩니다. ( JSON 데이터도 저장이 가능합니다. ) 만약에 array, object 자료를 저장하고 싶다면 편법을 사용하면 됩니다. array 나 obje..

JS/React 2024.03.08