Programming/React
-
- [React.js] React Hook Form 라이브러리
React Hook Form 라이브러리들어가며리액트(React.js) 애플리케이션에서 폼(Form)의 상태 관리를 쉽게 해주는 라이브러리인 React Hook Form에 대해 정리해본다. React Hook Form개념리액트 애플리케이션에서 폼(Form)의 상태를 관리해주는 라이브러리간단하고 효율적이며 퍼포먼스가 뛰어나다.리액트의 훅(Hook)을 활용하여 사용하며, 폼 상태 관리를 위한 기본적인 기능과 유효성 검증(Validation) 기능을 제공한다. React Hook Form - performant, flexible and extensible form libraryPerformant, flexible and extensible forms with easy-to-use validation.react-..
2024.11.23 -
- [React.js] 객체 표기법(Object Notation) 방식과 빌더 콜백 표기법(Builder Callback Notation) 방식
객체 표기법(Object Notation) 방식과 빌더 콜백 표기법(Builder Callback Notation) 방식들어가며리덕스 툴킷(Redux Toolkit, RTK)의 객체 표기법(Object Notation) 방식과 빌더 콜백 표기법(Builder Callback Notation) 방식에 대해 정리해본다. 객체 표기법(Object Notation) 방식 vs. 빌더 콜백 표기법(Builder Callback Notation) 방식RTK 버전 1.6.0 이상부터 기존의 객체 표기법(Object Notation) 방식에서 빌더 콜백 표기법(Bulder Callback Notation) 방식으로 작성해야 한다.기존의 객체 표기법은 더 이상 사용되지 않는다. 객체 표기법(Object Notation)..
2024.11.13 -
- [React.js] .js 파일에서 Uncaught SyntaxError: Unexpected token '<' 오류 발생할 때 해결 방법 (Vite)
.js 파일에서 Uncaught SyntaxError: Unexpected token '들어가며@.js@ 파일에서 @Uncaught SyntaxError: Unexpected token '이 문제는 Vite로 만든 프로젝트에 발생하는 문제이다. 문제 발생 상황@/src/utils/links.js@ 파일에서 컴포넌트(Component)가 @value@로 들어 있는 @key@가 들어 있는 객체를 외부 컴포넌트에서 import 하여 사용하려고 할 때, 다음과 같은 오류가 발생하였다. /src/utils/links.js@icon@ 키의 값을 외부 컴포넌트에서 불러올 때 위와 같은 오류가 발생하였다.const links = [ { id: 1, text: 'stats', path: '/', ..
2024.11.13 -
- [React.js] <Link> 컴포넌트와 <NavLink> 컴포넌트 비교 (React Router)
컴포넌트와 컴포넌트 비교 (React Router)들어가며리액트 라우터(React Router)에서 @@ 컴포넌트와 @@ 컴포넌트의 차이점에 대해 정리해본다. 컴포넌트개념리액트 라우터에서 제공하는 가장 기본적인 링크(Link) 컴포넌트특정 경로로 이동할 수 있는 내비게이션 링크를 생성한다.HTML의 @@ 태그와 유사하지만, 페이지 새로고침 없이 SPA(Single Page Application) 내에서 라우팅을 처리한다. 특징페이지를 새로 고침하지 않고, 클라이언트 측 라우팅을 수행한다.단순한 라우팅에 적합하다.선택된 상태에 따른 스타일링 기능은 없다. 사용 예시 코드import { Link } from "react-router-dom";function App() { return ( ..
2024.11.13 -
- [React.js] 리덕스(Redux), 리덕스 툴킷(Redux Toolkit)
리덕스(Redux), 리덕스 툴킷(Redux Toolkit)들어가며리액트(React.js)의 전역 상태 관리 라이브러리 중의 하나인 리덕스(Redux)와 리덕스 툴킷(Redux Toolkit)에 대해 정리해본다. 리덕스(Redux)개념자바스크립트 애플리케이션에서 상태 관리를 위해 사용되는 상태 컨테이너애플리케이션의 상태를 중앙에서 관리함으로써 상태 변화를 쉽게 추적하고, 디버깅을 단순화하며, 다양한 컴포넌트 간에 상태를 공유하는 것을 쉽게 해준다.리덕스를 사용하기 위해서는 아래의 명령을 실행하여 관련 패키지를 설치해준다.$ yarn add redux # npm install redux$ yarn add react-redux # npm install react-redux 리덕스..
2024.11.11 -
- [React.js] 모든 웹 브라우저에서 공통된 HTML 요소 스타일이 보여지도록 설정하는 방법 (normalize.css)
모든 웹 브라우저에서 공통된 HTML 요소 스타일이 보여지도록 설정하는 방법 (normalize.css)들어가며모든 웹 브라우저에서 공통된 HTML 요소 스타일이 보여지도록 설정하는 방법에 대해 정리해본다. 방법normalize.css 사용하기normalize.css@normalize.css@는 다양한 브라우저에서 HTML 요소의 스타일을 일관되게 보이도록 만들어주는 CSS 파일이다.웹 브라우저마다 기본 스타일이 다르게 적용되기 때문에, 웹 페이지가 각각 다른 브라우저에서 다르게 보일 수 있다.이러한 불일치를 해결하기 위해 @normalize.css@는 각 브라우저의 기본 스타일을 초기화하거나 표준화하여, 웹 페이지가 어디서든 일관되게 보이도록 해준다.@normalize.css@는 모든 기본 스타일을 제..
2024.11.07 -
- [React.js] Recharts 라이브러리
Recharts 라이브러리들어가며리액트(React) 기반의 데이터 시각화 라이브러리인 Recharts에 대해 정리해본다. Recharts개념리액트(React) 기반의 데이터 시각화 라이브러리다양한 차트를 쉽게 생성하고 데이터를 시각적으로 표현할 수 있도록 도와준다.선언형 방식으로 리액트와 잘 맞으며, 그래프를 구성하는 데 필요한 여러 컴포넌트를 제공해 직관적으로 차트를 구성할 수 있도록 도와준다. 특징리액트 컴포넌트를 사용하여 차트를 구성하므로, 리액트의 상태(State)와 속성을 활용해 동적으로 차트를 업데이트할 수 있다.Recharts는 내부적으로 D3.js 라이브러리를 활용하여 차트를 렌더링한다.D3.js의 강력하고 다양한 기능을 리액트 컴포넌트 형태로 간편하게 사용할 수 있다.차트를 구성하는 요소..
1 2024.11.06 -
- [React.ts] PropsWithChildren
PropsWithChildren들어가며리액트(React.ts)에서 사용할 수 있는 @PropsWithChildren@ 타입에 대해 정리해본다.이 타입은 리액트와 타입스크립트를 함께 사용할 때 사용할 수 있다. PropsWithChildren개념타입스크립트(TypeScript)에서 리액트 컴포넌트에 자식 요소(@children@)를 허용하고자 할 때 사용하는 유틸리티 타입보통 컴포넌트에 전달되는 기본 @props@ 외에도 자식 요소를 포함할 수 있을 때 유용하게 사용된다.@PropsWithChildren@ 타입은 컴포넌트가 자식 요소를 가질 수 있도록 명시하며, @children@을 명시적으로 정의하지 않고도 사용할 수 있도록 해준다. 사용 예제import { PropsWithChildren } from ..
2024.11.05 -
- [React.js] const Component vs. function Component
const Component vs. function Component들어가며리액트(React.js)에서 @const Component@ 형태의 화살표 함수 방식과 @function Component@ 형태의 함수 선언 방식으로 컴포넌트를 선언할 수 있다.위의 두 가지 방법에 대한 차이점을 정리해본다. ① 화살표 함수 방식const MyComponent = () => { return( .. )} 화살표 함수(Arrow Function)로 작성할 수 있으며, 짧은 코드로 작성할 수 있다는 장점이 있다.예를 들어, 한 줄로 반환하는 경우, @return@ 키워드를 생략할 수 있다.const MyComponent = () => ( ... ) 컴포넌트 선언과 동시에 @export default..
2 2024.11.04 -
- [React.js] React Share 라이브러리
React Share 라이브러리들어가며React Share 라이브러리에 대해 정리해본다. React Share개념리액트 애플리케이션에서 다양한 소셜 미디어 공유 버튼을 쉽게 추가할 수 있도록 해주는 라이브러리여러 소셜 미디어 플랫폼에 링크를 공유할 수 있는 버튼을 제공하며, 간단한 설정을 통해 버튼을 커스터마이징할 수 있다. 주요 특징간단하게 설치할 수 있다.필요한 소셜 미디어 공유 버튼을 컴포넌트로 불러와 사용할 수 있다.버튼의 크기, 모양, 스타일을 쉽게 커스터마이징할 수 있으며, SVG 아이콘을 사용하여 스타일을 자유롭게 변경할 수 있다.다양한 소셜 미디어 플랫폼을 지원한다.Facebook, X(Twitter), LinkedIn, Pinterest, Telegram, WhatsApp, Line, R..
2024.11.01 -
- [React.js] Clerk
Clerk들어가며Next.js 애플리케이션에서 인증(Authentication) 및 사용자 관리 기능을 쉽게 도와주는 Clerk 서비스에 대해 정리해본다.이 서비스를 이용하면, 소셜 로그인 등 인증을 위한 기능들을 직접 코드로 구현하여 만들어주지 않아도 된다. Clerk개념Next.js 애플리케이션에서 인증(Authentication) 및 사용자 관리 기능을 쉽게 구현할 수 있도록 돕는 서비스소셜 로그인, 멀티팩터 인증(MFA), 세션 관리 등을 기본 제공한다.Next.js의 서버리스 환경과도 잘 맞기 때문에 API 라우트와 미들웨어에서 유용하게 사용된다.Clerk을 이용하면 쉽게 소셜 로그인(Google, Facebook, GitHub 등) 기능을 구현할 수 있다. 회원가입 및 프로젝트 생성 Cler..
2024.10.28 -
- [React.js] use-debounce 패키지
use-debounce 패키지들어가며리액트(React.js)와 Next.js 같은 환경에서 컴포넌트가 자주 업데이트 되지 않도록 해주는 @use-debounce@ 패키지에 대해 정리해본다. use-debounce개념리액트(React.js)와 Next.js 같은 환경에서 컴포넌트가 자주 업데이트되지 않도록 특정 동작을 디바운스(Debounce) 하기 위해 사용할 수 있는 유틸리티 훅사용자가 입력을 빠르게 반복할 때 불필요한 리렌더링이나 API 호출을 방지하는 데 유용하다. 디바운스(Debounce)사용자가 마지막으로 발생한 이벤트 이후, 일정 시간 동안 추가 이벤트가 발생하지 않았을 때만 함수를 실행하는 패턴주로 API 요청이나 리소스가 많이 필요한 이벤트 처리에 사용된다.검색창에서 사용자가 입력할 때마다..
1 2024.10.27 -
- [React.js] antd 컴포넌트 라이브러리
antd 컴포넌트 라이브러리들어가며리액트(React.js) 기반의 UI 컴포넌트 라이브러리 중 하나인 antd(Ant Design)에 대해 정리해본다. Ant Design(antd)개념알리바바 그룹이 만든 리액트(React.js) 기반의 UI 컴포넌트 라이브러리디자인 일관성을 유지하면서 생산성을 높이는 것을 목표로 만들어졌으며, 기업용 시스템 개발에 많이 사용된다.주로 관리 시스템, 대시보드, 기업용 웹 애플리케이션 개발에 적합하다. 주요 특징버튼, 입력 필드, 테이블, 모달, 폼, 차트 등 다양한 UI 컴포넌트를 제공한다.@@, @@, @@, @@, @@, @@대부분의 컴포넌트가 미리 스타일링되어 있어, 최소한의 설정으로 빠르게 개발 가능하다.디자인 가이드라인을 따르며, 여러 컴포넌트를 조합해도 통일된..
1 2024.10.23 -
- [React.js] 일반 CSS와 CSS Module 비교
일반 CSS와 CSS Module 비교들어가며리액트(React.js)에서 CSS Module과 일반 CSS의 차이점에 대해 정리해본다.두 방식의 큰 차이점은 CSS 클래스의 범위(Scope)와 이름 충돌 방지이다 일반 CSS 방식일반적으로 사용되는 CSS는 전역적으로 동작한다.스타일 시트에서 정의된 클래스 이름이 프로젝트의 모든 컴포넌트에 영향을 미칠 수 있다.모든 컴포넌트는 같은 CSS 파일을 참조할 수 있고, 클래스 이름이 겹치면 스타일이 덮어씌워질 가능성이 있다. HomePage.css.button { background-color: blue; color: white;} HomePage.jsximport './HomePage.css';const HomePage = () => { return (..
2024.10.16 -
- [React.js] caseReducers 속성 (Redux Toolkit)
caseReducers (Redux Toolkit) 속성들어가며리덕스 툴킷(Redux Toolkit)의 @caseReducers@ 속성에 대해 정리해본다.이 속성을 이용하면 슬라이스 내의 개별 리듀서 함수에 직접 접근하고 호출할 수 있다. createSlice() 함수와 caseReducers 속성createSlice() 함수슬라이스(Slice)를 정의하기 위해 사용된다.슬라이스는 특정 상태(State)와 그 상태를 변경하는 리듀서(Reducer)들을 한 곳에 모아놓은 것이다.슬라이스는 자동으로 액션 생성자(Action Creators)와 액션 타입(Action Types)을 생성해준다.reducers 옵션@createSlice@ 함수의 @reducers@ 옵션은 슬라이스의 상태를 변경하는 여러 개의 리..
2024.10.03 -
- [React.js] URL의 파리미터(Parameter) 값 가져오기
URL의 파리미터(Parameter) 값 가져오기들어가며리액트(React.js)에서 URL의 파라미터(Parameter) 값을 가져오는 방법을 정리해본다. 파라미터(Parameter)개념URL 경로의 일부분으로, 주로 특정 리소스를 식별하는 데 사용된다.RESTful API 설계에서 흔히 사용되며, 리소스의 고유 식별자를 나타낸다.URL 파라미터를 사용하면 동적인 경로를 생성할 수 있어, 다양한 리소스에 대해 동일한 컴포넌트를 재사용할 수 있다. 종류종류설명경로 파라미터(Path Parameter)- 특정 리소스를 식별하는 데 사용- 예: @/users/:userId@쿼리 파라미터(Query Parameter)- URL의 @?@ 뒤에 위치하며, @키-값@ 쌍으로 다양한 옵션을 전달한다.- 예) @?sea..
1 2024.10.02 -
- [React.js] index.js로 컴포넌트(Component), 페이지(Page) 관리하기
index.js로 컴포넌트(Component), 페이지(Page) 관리하기들어가며다음과 같이 @src@ 폴더 내부에 있는 @components@, @pages@ 폴더 안에 @index.js@ 파일을 생성하여 여러 컴포넌트와 페이지들을 하나의 파일에서 관리할 수 있다.이와 관련된 내용을 정리해본다. index.js개념리액트(React.js) 프로젝트에서 @pages@나 @components@ 폴더 안에 위치한 @index.js@ 파일은 해당 폴더 내의 여러 컴포넌트들을 한 곳에서 쉽게 불러올 수 있도록 다시 @export@ 해주는 역할을 한다.@index.js@ 파일 안의 내용은 다음과 같이 구성할 수 있다. 사용 방법@pages@ 또는 @components@ 폴더에 @index.js@ 파일을 생성한 후,..
2024.10.01 -
- [React.js] Thunk API (Redux Toolkit)
Thunk API (Redux Toolkit)들어가며리덕스 툴킷(Redux Toolkit)의 Thunk API에 대해 정리해본다. Thunk API개념비동기 작업을 간편하게 처리할 수 있는 도구로, 여러가지 기능을 제공한다.주로 API 호출과 같은 비동기 작업을 처리할 때 사용되며, 액션(Action)을 디스패치(Dispatch)하고 애플리케이션의 상태를 관리할 수 있다. 구성기본적으로 2개의 매개변수를 제공한다.@dispatch@액션을 디스패치할 수 있는 함수비동기 작업의 결과에 따라 다른 액션을 보낼 수 있다. @getState@현재 스토어의 상태(State)를 가져오는 함수상태에 따라 로직을 다르게 처리할 수 있다. 사용 방법@createAsyncThunk@를 사용하여 비동기 액션 크리에이터를 생성..
1 2024.09.28 -
- [React.js] 리액트 라우터(React Router)
리액트 라우터(React Router)들어가며리액트(React.js)에서 라우팅을 할 때 많이 사용하는 리액트 라우터(React Router) 라이브러리에 대해 정리해본다.v6을 기준으로 정리하였다. 리액트 라우터(React Router)개념리액트 애플리케이션에서 클라이언트 사이드 라우팅을 처리하기 위한 라이브러리리액트 라우터를 사용하면, 사용자가 페이지를 전환할 때 전체 페이지를 새로고침하지 않고도 URL에 따라 서로 다른 컴포넌트를 렌더링할 수 있다. 구성 요소BrowserRouterHTML5의 History API를 사용하여 URL을 관리한다.주로 애플리케이션의 최상위 컴포넌트로 사용된다. Routes각 경로에 대한 라우트를 정의하는 컨테이너하나 이상의 @Route@를 자식으로 가질 수 있다. Ro..
2024.09.26 -
- [React.js] 라우팅 관련 기능들 정리 (React Router) : useNavigate, useNavigation, redirect, useLocation, useParams, useHistory, Navigate
라우팅 관련 기능들 정리 (React Router) : useNavigate, useNavigation, redirect, useLocation, useParams, useHistory, Navigate들어가며리액트(React.js)에서 라우팅을 위해 사용되는 관련 기능들에 대해 간단하게 정리해본다.페이지 이동 및 라우팅을 위해 리액트 라우터(React Router)의 여러 훅과 컴포넌트, 함수들을 사용할 수 있다. ① useNavigate()개념리액트 라우터(React Router) v6 에서 제공하는 훅프로그래밍적으로 다른 경로로 이동하기 위해 사용된다.컴포넌트 내에서 버튼 클릭, 이벤트 발생 시 특정 페이지로 이동할 때 사용한다. 특징@push@와 @replace@를 설정할 수 있어 히스토리에 추가..
1 2024.09.26 -
- [React.js] 폼 데이터 처리하기 (React, React Router)
폼 데이터 처리하기 (React, React Router)들어가며리액트(React)에서 폼(@@) 데이터를 처리하는 방법을 정리해본다. 폼(Form, @@)개념HTML에서 사용자 입력 데이터를 수집하고 서버로 전송하기 위한 요소로그인, 회원가입, 검색 등 사용자 입력이 필요한 기능을 구현할 때 사용된다. Name: Email: Submit 특징@@ 요소에서 @method@ 속성을 지정하지 않을 경우, 기본적으로 @GET@ 요청이 수행된다.이때, @@ 요소 안의 @@요소의 값을 URL의 쿼리 문자열에 포함하여 서버로 전송한다.속성의 값을 @POST@로 지정할 경우, 데이터를 본문에 포함하여 서버로 전송한다.@@ 요소의 @action@ 속성의 값에 폼을 제출할 때 데이터를 보낼 서버의 URL을 ..
1 2024.09.26 -
- [React.js] 무한 스크롤(Infinite Scroll), 스켈레톤(Skeleton) 효과 적용하기 (with React Query)
무한 스크롤(Infinite Scroll), 스켈레톤(Skeleton) 효과 적용하기 (with React Query)들어가며React Query를 이용하여 무한 스크롤(Infinite Scroll)과 스켈레톤(Skeleton) 효과를 적용한 예제 코드를 올려본다.개인 미니 프로젝트를 진행하면서 만들었던 코드이다.검색어를 입력하면, 해당 검색어와 관련된 이미지를 표시하는 사이트Unsplash 공개 API를 이용하여 구현하였다. 코드리액트 쿼리의 @useInfiniteQuery()@를 이용하여 무한 스크롤(Infinite Scroll) 기능을 구현하였다.@IntersectionObserver@를 사용하여 스크롤이 페이지의 맨 아래에 도달했을 때만 다음 페이지의 데이터를 불러오도록 설정하였다.@useStat..
2024.09.23 -
- [React.js] .env 파일 만들고 사용하기 (환경 변수 관리)
.env 파일 만들고 사용하기 (환경 변수 관리)들어가며리액트(React.js)에서 환경 변수 관리를 위해 @.env@ 파일을 만들고 사용하는 방법을 정리해본다. @.env@ 파일개념애플리케이션에서 사용되는 환경 변수(Environment Variables)를 저장하는 파일환경 변수는 운영체제나 애플리케이션의 설정 값들을 외부에서 설정하고 관리할 수 있게 해주는 변수들로, 코드에 직접 하드코딩하지 않고도 민감한 정보나 설정 값을 관리할 수 있게 해준다.리액트나 노드 같은 웹 애플리케이션에서는 주로 다음과 같은 정보를 @.env@ 파일에 저장한다.✅ API 키 ✅ 데이터베이스 연결 정보 ✅ API 엔드포인트 ✅ 앱 환경 설정 (개발, 테스트, 프로덕션 등) 특징애플리케이션에서 민감한 정보나 환경에 따라 달..
2024.09.23 -
- [React.js] React Query Devtools
React Query Devtools들어가며리액트 쿼리(React Query/Tanstack Query)의 개발자 도구(Devtools)를 설치 및 적용하는 방법을 정리해본다. React Query Devtools개념상태 관리와 서버 데이터 동기화를 디버깅하기 위한 개발 도구React Query가 관리하는 쿼리(Query)와 뮤테이션(Mutation) 상태를 시각적으로 확인할 수 있는 인터페이스를 제공한다.개발자가 쉽게 데이터 흐름을 추적하고, 문제를 파악하거나 성능을 최적화하는 데 도움을 준다. 주요 기능쿼리 상태 확인현재 실행 중인 모든 쿼리의 상태(예: @loading@, @success@, @error@ 등)를 실시간으로 확인할 수 있다.또한 쿼리 결과 데이터, 쿼리 키, 마지막으로 업데이트된 시..
2024.09.22 -
- [React.js] 코드 분할(Code Splitting) : useTransition 훅, Suspense 컴포넌트, lazy 함수
코드 분할(Code Splitting) : useTransition 훅, Suspense 컴포넌트, lazy 함수들어가며리액트(React.js)에서 코드 분할(Code Splitting)의 장점과 함께 사용되는 @useTransition@ 훅과 @Suspense@ 컴포넌트, @lazy@ 함수에 대해 정리해본다. 코드 분할(Code Splitting)개념리액트 애플리케이션에서 코드의 일부분을 나눠서 필요한 시점에 로드하는 방식 장점애플리케이션을 더 작은 청크(Chunk)로 나눔으로써 초기 로드 시 필요한 자바스크립트 크기를 줄인다.이를 통해 첫 화면 렌더링 속도가 빨라지며, 느린 네트워크 환경에서도 빠르게 응답할 수 있다.사용자가 필요로 하지 않는 코드는 나중에 로드되며, 상호작용할 때만 필요한 코드가 동..
2024.09.20 -
- [React.js] useMemo 훅
useMemo 훅들어가며리액트(React.js)의 @useMemo@ 훅에 대해 정리해본다. useMemo 훅개념컴포넌트의 성능 최적화(Optimization)를 위해 자주 사용되는 훅특정 연산의 결과를 메모이제이션(Memoization)하여 의존성 배열에 있는 값들이 변경되지 않는 한 해당 연산을 다시 수행하지 않도록 한다.불필요한 재연산을 방지하고 성능을 향상시킬 수 있다. 사용 방법첫 번째 인자는 메모이제이션할 값을 반환(return)하는 함수이다. (@computeExpensiveValue@).두 번째 인자는 의존성 배열(Dependency Array)로, 이 배열의 값들이 변경될 때만 메모이제이션된 값이 다시 계산된다.const memoizedValue = useMemo(() => computeE..
2024.09.20 -
- [React.js] useCallback 훅
useCallback 훅들어가며리액트(React.js)에서 사용되는 @useCallback@ 훅에 대해 정리해본다. useCallback 훅개념컴포넌트의 성능 최적화(Optimization)를 위해 자주 사용되는 훅함수를 메모이제이션(Memoization)하여 컴포넌트가 리렌더링될 때마다 함수가 재생성되는 것을 방지한다. 사용 방법@useCallback(() => {}, [])@와 같이 사용한다.첫 번째 인자로 함수를 받고, 두 번째 인자로 의존성 배열(Dependencies Array)을 받는다.const memoizedCallback = useCallback(() => { doSomething(a, b);}, [a, b]); ⇒ 리액트는 컴포넌트가 리렌더링될 때마다 해당 함수를 다시 생성하지 않고,..
2024.09.20 -
- [React.js] React.memo()
React.memo()들어가며리액트(React.js)에서 제공하는 고차 함수(Higher-Order Component)인 @React.memo()@에 대해 정리해본다. React.memo()개념리액트에서 제공하는 고차 함수(Higher-Order Component)함수형 컴포넌트의 불필요한 재렌더링을 방지하는 역할을 한다.전달된 @props@가 변경되지 않는 한 해당 컴포넌트는 다시 렌더링되지 않도록 최적화(Optimization)할 수 있다.@React.memo()@는 함수형 컴포넌트를 인자로 받아, 그와 동일한 동작을 하는 새로운 컴포넌트를 반환하지만, 추가적으로 @props@가 변경되었는지 확인하는 최적화 작업이 추가된다.@props@가 변경되지 않은 경우, 메모이제이션된 컴포넌트는 이전 렌더링에서..
2024.09.18 -
- [React.js] Context API를 이용하여 전역 상태 관리하기
Context API를 이용하여 전역 상태 관리하기들어가며리액트(React.js)에서 Context API를 이용하여 전역 상태 관리하는 방법을 정리해본다.Context API를 이용하면 따로 패키지를 설치하지 않고도 전역 상태를 관리할 수 있다. Context API개념컴포넌트 트리에서 전역 상태를 보다 쉽게 공유할 수 있는 기능을 제공하는 API이 방법을 이용하면, 프롭 드릴링(Props Drilling)을 피할 수 있다. 방법① context 파일 생성하기전역으로 사용할 상태를 정의하는 @Context.js@ 파일을 생성한다. ./src/context.jsimport { createContext, useContext, useState } from 'react';// (1) Context 생성하기co..
2 2024.09.11 -
- [React.js] react-toastify 라이브러리
react-toastify 라이브러리들어가며간단하게 토스트(Toast) 메시지를 띄워야할 때 @react-toastify@ 라이브러리를 사용할 수 있다.@react-toastify@ 라이브러리의 사용법을 간단하게 정리해본다. react-toastify 라이브러리개념리액트 애플리케이션에서 사용자에게 알림을 제공하는 토스트 메시지(Notification)를 쉽게 구현할 수 있게 해주는 라이브러리이 라이브러리를 사용하여 다양한 스타일과 애니메이션 효과로 간단하게 알림을 띄울 수 있다.기본적으로 설정이 간편하며, 다양한 사용자 정의 옵션을 제공하여 알림을 원하는 대로 커스터마이징할 수 있다. 라이브러리 설치$ npm install react-toastify # yarn add react-toastify 사..
2024.09.10