react
![[React] 프로젝트 최적화](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FQ8B47%2Fbtshzme7jfS%2FAAAAAAAAAAAAAAAAAAAAAE5oK3OsfzCQ5qiHXq-A62KuuRIgI66Hzh0pUL4H8duH%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D3ir1CKKZHsPbnd8I9%252BjCgYaEmVY%253D)
[React] 프로젝트 최적화
이 블로그는 유데미 '한입 크기로 잘라먹는 리액트' 강의를 듣고 복습하고자 작성되었습니다. 목차 1. Memoization으로 연산과정 최적화 2. React.memo로 컴포넌트에 리렌더 조건 걸기 3. useCallback으로 함수 전달 4. 기타 최적화 1. Memoization으로 연산과정 최적화 Memoization이란, 이미 계산해본 결과를 기억해뒀다가 동일한 계산을 시키면 기억해놨던 데이터를 바로 반환시키는 방법입니다. memoization을 이용해 일기데이터에서 내 기분의 비율을 분석해주는 기능을 넣어봅시다. 1. 분석 함수 추가 const getDiaryAnalysis = () => { console.log('일기 분석 시작'); const goodCount = data.filter((i..
[React] 일기장 프로젝트 2. 페이지 구현 - 수정, 상세화면
이 블로그는 유데미 '한입 크기로 잘라먹는 리액트' 강의를 듣고 복습하고자 작성되었습니다. 목차 1. 수정페이지 2. 상세페이지 1. 수정페이지(/edit) 수정페이지는 일기 작성페이지와 거의 유사해서 만드는 과정도 간단합니다. 1. id 정보와 일기 데이터 가져오기 id는 App.js의 route에서 path variable로 설정한 후 useParams를 이용해 id 객체로 불러올 것입니다. 또 일기 데이터는 일기 작성화면에서 구현했듯 useContext를 이용해 가져올 것입니다. 1-1. Edit 컴포넌트 만들기 import { useNavigate } from 'react-router-dom'; const Edit = () => { const navigate = useNavigate(); retu..
![[React] 일기장 프로젝트 2. 페이지 구현 - 홈화면](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Flnvlp%2FbtscfzxJ351%2FAAAAAAAAAAAAAAAAAAAAAMtbLLCrZojeH5UsepJUfb2U3NCzJz3o0J_eZekSJMxz%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DK9A%252BS4lo1s7u21OYZbJxvkpcJ9I%253D)
[React] 일기장 프로젝트 2. 페이지 구현 - 홈화면
이 블로그는 유데미 '한입 크기로 잘라먹는 리액트' 강의를 듣고 복습하고자 작성되었습니다. 목차 1. 헤더 2. 다이어리 리스트 3. 필터 4. 다이어리 아이템 가장 먼저 홈화면의 구조를 보겠습니다. 맨 위에 현재 월을 알려주는 헤더, 그 밑에 필터가 있고, 그 아래에 일기 리스트가 있습니다. Home 컴포넌트를 만든 후, 각 요소를 추가해봅시다. 1. 헤더 1. 날짜 state 만들고 headText 설정 import { useState } from 'react'; const [curDate, setCurDate] = useState(new Date()); const headText = `${curDate.getFullYear()}년 ${curDate.getMonth() + 1}월`; 현재 날짜 sta..
[React] 리액트 생애주기와 useEffect
이 블로그는 유데미 '한입 크기로 잘라먹는 리액트' 강의를 듣고 복습하고자 작성되었습니다! 목차 1. 리액트 생애주기(Lifecycle) 2. Lifecycle 실습 3. API 호출 1. 리액트 생애주기(Lifecycle) 리액트의 생애주기란, 시간의 흐름에 따라 프로그램이 실행(Mount)되고, 변화(Update)되며, 종료(UnMount)되는 과정입니다. 생애주기별로 여러 함수가 있는데, 이들은 다 클래스로만 사용이 가능합니다. 사실 이때까지 사용한 State, Ref도 클래스로만 사용이 가능했습니다. 하지만 함수형으로 사용하기 위해 저희는 React Hooks를 이용했던 것입니다. 우리가 사용한 useState, useEffect, useRef 형태의 함수형이 모두 React Hooks입니다. 그..
[React] 데이터 삭제하기, 데이터 수정하기
이 블로그는 유데미 '한입 크기로 잘라먹는 리액트' 강의를 보고 복습하고자 작성되었습니다! 이미 작성된 일기 데이터의 삭제와 수정 부분을 만들어보겠습니다. 목차 1. 데이터 삭제 2. 데이터 수정 1. 데이터 삭제 1. DiaryItem 리턴에 삭제 버튼 만들기 2. App.js에 onDelete 함수 만들기 const onRemove = (targetId) => { console.log(`${targetId}가 삭제되었습니다`); }; 일단 콘솔에 출력만 하도록 만들었습니다. 3. 만든 함수를 불러오도록 하기 먼저 DiaryItem의 부모인 DiaryList에 함수를 전달합니다. const DiaryList = ({ onRemove, diaryList }) => {}; 그리고 DiaryList에서 pr..
![[React] 데이터 추가 기능](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FwIJrC%2FbtsagrIkeir%2FAAAAAAAAAAAAAAAAAAAAAKJb-BK1LESdzq-Yg4vbrpfj7FOGHUnrY5xHOBureMLA%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D%252Bj%252FY1y3UBBw%252Bhvg6hKjuPFNF46A%253D)
[React] 데이터 추가 기능
이 블로그는 유데미 "한입 크기로 잘라먹는 리액트" 강의를 보고 복습하고자 작성되었습니다! 목차 1. 컴포넌트, 데이터 구조 분석 2. 데이터 추가 1. 컴포넌트, 데이터 구조 분석 현재까지의 프로젝트 진행 상황을 회고해보겠습니다. 먼저 컴포넌트의 구조입니다. 먼저, 최상단에 App 컴포넌트가 있고, 그 아래에 DiaryEditor와 DiaryList를 접근할 수 있습니다. 우리가 지금 작업할 일기 아이템 추가를 통해, DiaryEditor에서 DiaryList로 데이터가 들어가야 할 것입니다. 하지만, 앞에서 조회 기능을 만들 때는 dummyList를 App 컴포넌트에서 만든 후, 이를 props로 DiaryList에 내려줬습니다. 이렇듯 React에서 데이터는 위에서 아래로 데이터를 내려가는 것밖에 ..
![[React] React에서 DOM 조작, 데이터 조회 기능 (리스트 렌더링)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FmRgZ3%2Fbtsai5YPxrh%2FAAAAAAAAAAAAAAAAAAAAAL83cPvWl0TQRhP5u4nGE_1qKTB-bhgSPSkgGGAtWxQt%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DcQ9yR6xyookeHBn7HR5dngDzJRo%253D)
[React] React에서 DOM 조작, 데이터 조회 기능 (리스트 렌더링)
이 블로그는 "한입 크기로 잘라먹는 리액트" 강의를 보고 복습하고자 작성되었습니다! 목차 1. useRef로 DOM 조작하기 2. 일기 리스트 렌더링(조회기능) 3. 컴포넌트 분할 1. useRef로 DOM 조작하기 DOM(Document Object Model)이란 문서 객체 모델이라는 뜻으로, 웹 페이지의 요소들을 구조화시켜 접근, 조작할 수 있도록 API를 제공해주는 인터페이스입니다. const handleSubmit = () => { if (state.author.length < 1) { alert('작성자는 최소 1글자 이상 입력해주세요.'); return; } if (state.contents.length < 5) { alert('일기 본문은 최소 5글자 이상 입력해주세요.'); return;..