Conversation
[feat] readme 수정
| className="mr-3 w-5 h-5 accent-indigo-500 cursor-pointer" // accent로 색상 지정 | ||
| /> | ||
| {todo.text || ''} | ||
| <button onClick={() => removeTodo(todo.id)}>X</button> |
There was a problem hiding this comment.
X 버튼에 Tailwind CSS로 박스 스타일을 추가해 시각적으로 구분하면 더 좋을 것 같습니다. 👍
|
파일 구조가 components, context, hooks, utils로 분리되어 있어 추후 추가 기능 개발 시에도 큰 구조 변경 없이 기능만 확장할 수 있어 확장성이 좋아보입니다. App.jsx에서 모든 컴포넌트를 중앙에서 호출하고 있어 관리 포인트도 명확해 보입니다. |
|
저는 setTodos([...todos, newTodo])처럼 기존 상태를 직접 참조해서 업데이트했었는데, 다만, TodoWriteForm에서 todoText 상태로 입력 값을 관리하면서도, |
|
저도 id값이 중복되는 같은 문제를 겪었었는데요!! 기타 컴포넌트 구조부터 UI까지 너무 잘 짜여있습니다🥳 |
리액트 투두 앱 만들기 미션 레포
🎯 프로젝트 개요
이 과제는 React와 Vite를 사용해 간단한 Todo List를 구현하는 프로젝트입니다.
컴포넌트 구조와 상태 관리를 이해하고, localStorage를 활용한 데이터 유지 기능을 구현합니다.
할 일을 입력하면 목록에 추가되고, 삭제할 수 있으며, localStorage에 저장되어 새로고침해도 유지됩니다.
💾 localStorage 연동 방식
useEffect()를 사용해 앱 최초 로딩 시 localStorage에서 todos 불러오기 localStorage TodoContext안에서 통합
✅ 중간에 막혔던점
id값이 중복돼서 id를 Date함수 써서 받았는데 코드가 읽기 어려워짐 - useRef사용해서 해결
➕기능 확장 계획
간단한 구현만돼있는 상태인데 우선순위,마감날짜 기능 도 추가할 예정입니다
⚛️ 주요 컴포넌트 구조 예시
🧠 스크린샷