프로그래머스 풀스택 48
posted on 04 Nov 2024 under category programmers in series programmers
프론트엔드 심화: 상태 관리와 비동기 처리(1)
💫 리액트를 이용한 Task 생성 앱 만들기
npx
: 일회용 설치
npm
: 다회용 설치
npm init vite
을 통해 리액트를 빠르게 설치함./
을 입력하여 현재 폴더명을 사용하기그 뒤 터미널에 npm i
를 통해 남은 dependencies 설치
npm run dev
를 통해 실행
💫 구조 생성하기
rafce
라는 명령어를 통해 리액트 기본 코드가 제공됨import React from 'react'
const ActionButton = () => {
return (
<div>ActionButton</div>
)
}
export default ActionButton
상태관리 라이브러리 : Redux, Mobx, Zustand, Recoil, Context API
💫 모든 컴포넌트들 생성하기
💫 필요한 패키지들 설치하기
npm install @reduxjs/toolkit redux clsx @vanilla-extract/css @vanilla-extract/css-utils @vanilla-extract/vite-plugin react-icons uuid react-beautiful-dnd
💫 리덕스 사용을 위한 준비하기
npm install react-redux
을 통해 설치하기
Redux
상태 관리 라이브러리 (선택사항)
Redux의 흐름
Action 객체 Dispatch 함수 👉 Reducer 함수 type return 👉 Redux Store State 👉 React Component Rerendering
Toolkit Reducer Slice Store Provider react component wrapper
default로 내보내는 것과 이름으로 export하는 것의 차이점
export default reducer;
👉 import reducer from "./reducer/reducer";
export const modalReducer = modalSlice.reducer;
👉 import { modalReducer } from "../slices/modalSlice";
💫 Board 데이터 및 타입 생성
💫 리덕스 Hooks 생성하기
타입스크립트 👉 추론 X 👉 타입 지정 annotate
interface Obj<T> {
name : T;
} // TypedUseSelectorHook<>과 같음
interface State {
state : {
data : string,
loading : boolean
}
} // Obj<T>에 값이 들어감
const obj : Obj<State> = {
name : {
state : {
data : 'abcd',
loading : false
}
}
}
💫 전역 스타일 생성하기
vite.config.ts
파일에서
export default defineConfig({
plugins: [react(), vanillaExtractPlugin()],
})
플러그인 부분에 vanillaExtractPlugin()
를 추가
Y 일을 통해 명확히 알게 되었거나 이해한 부분(한 일)에 대해 정리 :
vite를 통해 리액트 프로젝트를 빠르게 생성
W 배운 점과 시사점 :
default로 내보내는 것과 이름으로 export하는 것의 차이점
export default reducer;
👉 import reducer from "./reducer/reducer";
export const modalReducer = modalSlice.reducer;
👉 import { modalReducer } from "../slices/modalSlice";
T 응용하여 배운 것을 어디에 어떻게 적용할지:
작동하는 웹 페이지를 만들 때 응용 가능