리액트

· TIL
오늘은 "2024-05-27" 형식의 날짜를 가리키는 문자열을 다루는 법을 정리해보겠습니다.유효성 검사로 2월30일 같은 없는 날짜 등을 걸러내는 방법입니다. 물론 애초에 input의 type 을 date 등으로 처리하면 되겠지만, 이렇게 문자열로 입력받아야 하는 상황에서 어떻게 처리하면 좋을지를 생각해봤습니다. 먼저 입력된 문자열을 Date 객체로 변환하고, 변환된 Date 객체의 값을 원래 입력값과 비교하여 유효한 날짜인지 검사합니다.날짜 유효성 검사 코드const [year, month, day] = dateString.split('-').map(Number);const date = new Date(year, month - 1, day);if ( date.getFullYear() !== yea..
· TIL
오늘은 mock 데이터를 보내주는 가상 서버를 만들어 연습 등등에 사용할 수 있는 방법을 배웠습니다.JSON Server 가 그것으로, JSON Server는 간단한 REST API 서버를 만들기 위해 사용되는 라이브러리라고 합니다.JSON Server를 통해 JSON 파일을 기반으로 빠르게 Mock API를 생성할 수 있습니다. JSON Server의 설치 및 기본 사용법을 정리합니다.1. JSON Server 설치먼저 JSON Server를 글로벌로 설치합니다.npm install -g json-server2. JSON 파일 준비JSON Server는 JSON 파일을 데이터베이스로 사용합니다. 프로젝트 루트 디렉토리에 db.json 파일을 생성하고 다음과 같이 데이터를 준비합니다.// db.json{..
· TIL
오늘은 전역 상태관리 라이브러리인 Redux 그리고 사용성을 강화한Redux Toolkit 의 기본에 대해 정리해보려고 합니다.1. Redux 설치먼저 필요한 패키지를 설치합니다.npm install @reduxjs/toolkit react-redux2. 기본적인 파일 구조src/├── store/│ ├── todoSlice.ts│ └── store.ts├── App.tsx└── index.tsx3. store.ts 설정store.ts` 파일을 생성하고 다음과 같이 설정합니다.// store.tsimport { configureStore } from '@reduxjs/toolkit';import todoSlice from './todoSlice';export const store = configu..
· TIL
리액트 첫 주차 과제 todo list 만들기를 완료하였습니다.간단한 과제이기 때문에 기술적인 어려움은 없었지만리액트 기본에 관한 몇몇 질문에 확실하게 대답하기 어려운 부분이 있었습니다.무언가 알고는 있지만 말로 해보려니 잘 정리가 안되는 부분들을 다시한번 간결하게 정리해 보려고 합니다.JSX 문법이란?JSX 란 Javascript 와 xml 의 결합어의 약자로서 자바스크립트와 xml 이 합쳐진 문법입니다.하나의 파일에 js 와 html 을 동시에 작성하여 편리합니다.브라우저에서 실행되기 전에 바벨 등을 통해 일반 자바스크립트로 변환됩니다.useState?애플리케이션의 상태를 관리하기 위해 리액트의 useState 훅을 사용하였습니다.데이터의 불변성을 유지하면서 상태를 관리할 수 있으며 간결하고 직관적인..
· TIL
오늘은 본격적인 리액트 주차에 접어들어 특강을 수강했습니다.리액트를 다루는데 있어 무엇보다 중요한 리렌더링의 조건에 대해 확실하게 정리가 된 시간이었습니다.이것은 공식처럼 알고 있어야 할 것 같습니다. 리렌더링의 조건state가 변경되면 컴포넌트는 리렌더링됩니다.부모 컴포넌트로부터 받는 props의 값이 변경되면 컴포넌트는 리렌더링됩니다.부모 컴포넌트가 리렌더링되면 자식 컴포넌트는 리렌더링됩니다. state가 변경되면 컴포넌트는 리렌더링됩니다.state는 컴포넌트의 상태를 나타내며, 상태가 변경되면 해당 컴포넌트와 그 하위 컴포넌트들은 리렌더링됩니다.React는 setState 함수가 호출될 때마다 컴포넌트가 새 상태를 반영하도록 리렌더링을 트리거합니다.부모 컴포넌트로부터 전달받는 props의 값이 변경..
· TIL
오늘은 리액트를 공부하면서 그동안 왜 그렇게 사용해야 하는지 모르고당연하게 써왔던 방법과 관련하여 그 원리에 대해 알아보았습니다.불변성(Immutability)의 원칙과 순수함수 지향에 대한 내용입니다. 불변성(Immutability)의 원칙리액트에서 상태 관리를 다룰 때 불변성(Immutability)을 유지하는 방식으로 코드를 작성해야 합니다.불변성은 데이터가 생성된 후 수정되지 않고, 변경이 필요한 경우 새로운 데이터를 생성해서 사용하는 원칙을 의미합니다. 리액트에서 불변성을 유지하는 이유는 주로 성능 최적화와 관련이 있습니다.리액트는 상태가 변경될 때 렌더링을 결정하는데, 객체나 배열 같은참조 타입의 데이터는 내용이 변경되어도 참조 주소가 동일할 수 있습니다. 이 경우 리액트는 상태가 변화하지 않..
· react
안녕하세요! React Router는 React 애플리케이션에서 클라이언트 사이드 라우팅을 구현하는 데 사용되는 표준 라이브러리입니다. React Router를 사용하면 URL에 따라 다양한 뷰(views) 또는 컴포넌트를 표시할 수 있으며, 페이지를 새로고침하지 않고도 애플리케이션 내에서의 네비게이션을 관리할 수 있습니다. React Router의 주요 개념들: 1. BrowserRouter: HTML5의 history API를 사용하여 URL을 조작하고, 현재 위치를 애플리케이션의 UI와 동기화합니다. 2. Route: URL과 React 컴포넌트를 연결합니다. 특정 URL에 대해 어떤 컴포넌트를 렌더링할지 정의합니다. 3. Link (또는 NavLink): 애플리케이션 내에서 다른 경로로의 링크를 ..
· react
Redux Toolkit은 Redux를 좀 더 쉽고 효율적으로 사용할 수 있도록 도와주는 도구입니다. 기본 Redux에 비해 보일러플레이트 코드를 줄여주며, 여러 편리한 기능을 제공합니다. Redux Toolkit을 사용한 기본적인 Redux 설정과 사용법을 설명드리겠습니다. 1. Redux Toolkit 설치 Redux Toolkit과 React-Redux를 설치합니다. npm install @reduxjs/toolkit react-redux2. Store 생성 configureStore 함수를 사용해 Redux store를 생성합니다. 이 함수는 Redux DevTools와 미들웨어 등을 자동으로 설정해줍니다. // src/app/store.js import { configureStore } from..
· react
물론입니다. React의 Context API는 애플리케이션의 여러 컴포넌트에 걸쳐 데이터를 공유하는 데 유용한 도구입니다. Context API를 사용하면 props를 통해 데이터를 명시적으로 전달하는 대신, 컴포넌트 트리를 통해 데이터를 직접 전달할 수 있습니다. 이는 특히 중첩된 컴포넌트 구조에서 매우 유용합니다. Context API의 기본 사용법은 다음과 같습니다: 1. Context 생성: `React.createContext()`를 사용하여 Context를 생성합니다. 2. Provider 사용: 생성된 Context의 `Provider` 컴포넌트를 사용하여 하위 컴포넌트에 데이터를 제공합니다. 3. Consumer 사용: Context의 데이터를 사용할 컴포넌트에서 `Context.Cons..
· react
import React, { useMemo } from 'react'; function MyComponent({ list }) { const sortedList = useMemo(() => { return list.sort((a, b) => a - b); }, [list]); return ( {sortedList.map((item, index) => ( {item} ))} ); } export default MyComponent; // 계속 sortedList 바뀌는데 useMemo 굳이 왜쓰는 거임 네, 맞습니다. 이 코드에서 list가 변경되면 sortedList도 변경됩니다. useMemo 훅은 React 컴포넌트가 리렌더링될 때 불필요한 계산을 피하기 위해 사용됩니다. useMemo의 주요 목적은..
· react
// 그러면 useMemo, useReducer 등 고급 hook 들을 알려주세요! React의 Hooks API는 useState와 useEffect 이외에도 많은 고급 Hooks를 제공합니다. 이 중 두 가지, useMemo와 useReducer에 대해 알아보겠습니다. 1. useMemo useMemo는 메모이제이션(memoization)된 값을 반환합니다. 이는 비용이 많이 드는 연산의 결과값을 재활용하여 성능을 최적화하는 데 사용됩니다. useMemo는 두 개의 인자를 받습니다. 첫 번째 인자는 값을 계산하는 함수이고, 두 번째 인자는 dependency array입니다. 이 배열에 명시된 값이 변경되었을 때만 첫 번째 인자의 함수가 호출되어 값이 재계산됩니다. 다음은 useMemo의 기본적인 사..
· react
// 그러면 react의 라이프사이클 메소드에 대해 알려주세요 React 컴포넌트의 라이프사이클은 크게 세 가지 단계로 나뉩니다: 마운트(mounting), 업데이트(updating), 언마운트(unmounting). 1. 마운트(Mounting) 마운트는 컴포넌트 인스턴스가 생성되어 DOM에 삽입되는 단계를 의미합니다. 여기에는 다음의 메서드들이 포함됩니다: constructor(): 컴포넌트가 생성될 때 호출되는 메서드로, 초기 state를 설정하거나 이벤트 핸들러를 바인딩하는 등의 작업을 수행합니다. render(): 컴포넌트가 어떤 것을 렌더링할지 결정하는 유일한 필수 메서드입니다. 이 메서드는 순수 함수여야 하며, state나 props를 변경하거나 부수 효과를 발생시키는 작업을 수행해서는 안 ..
· react
// react 의 props 와 state 의 개념, 예시 등을 자세히 설명해 주세요 1. Props "props"는 React에서 부모 컴포넌트로부터 자식 컴포넌트로 전달하는 데이터를 의미합니다. "props"는 속성(properties)의 줄임말이며, HTML의 속성과 유사한 방식으로 작동합니다. 예를 들어, 부모 컴포넌트에서 자식 컴포넌트로 "name" prop을 전달하는 예시는 아래와 같습니다: function ParentComponent() { return } function ChildComponent(props) { return Hello, {props.name}! } 이 예시에서, "name"은 ChildComponent에 전달되는 prop이며, ChildComponent는 이 prop을 ..
· react
// 처음으로, "react 의 기본 이해" 중 컴포넌트에 대해 설명해 주시겠어요? React에서의 컴포넌트는 일종의 사용자 정의 요소라고 생각하시면 됩니다. 각 컴포넌트는 UI의 특정 부분을 캡슐화하고 독립적으로 작동합니다. 이렇게 만들어진 컴포넌트는 조합하여 복잡한 사용자 인터페이스를 구축할 수 있습니다. React 컴포넌트는 주로 두 가지 형태로 생성됩니다: 클래스 컴포넌트: ES6 클래스를 확장하여 정의되며, 라이프사이클 메소드와 내부 상태를 가질 수 있습니다. class Welcome extends React.Component { render() { return Hello, {this.props.name}; } } 함수형 컴포넌트: 가장 간단한 형태의 React 컴포넌트로, 함수 하나로 구성됩니..
· react
리액트 빨리 배우는 법을 GPT 선생님께 물어보았다. // 저는 자바스크립트 기본 문법을 이해하고 있습니다. react 를 효과적으로 배우려면 어떤 커리큘럼이 적합할까요? 기본적인 JavaScript와 ES6의 문법에 대한 이해를 이미 가지고 계신다면, 아래와 같이 React에 대한 심화학습을 진행하는 것이 좋습니다: 1.React 기본 이해 React의 핵심 개념인 컴포넌트, JSX, props, state에 대해 학습합니다. React의 라이프사이클 메소드에 대해 알아봅니다. 이벤트 처리, 폼 처리 방법 등을 학습합니다. 공식 React 문서를 꼼꼼히 읽어보는 것이 좋습니다. 2. React 고급 개념 습득 React의 Hooks API를 학습합니다. useState, useEffect와 같은 기본 ..
adminisme
'리액트' 태그의 글 목록