diff --git a/.gitignore b/.gitignore index 20fccdd..fd07293 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,5 @@ yarn-error.log* .env.development.local .env.test.local .env.production.local + +.now \ No newline at end of file diff --git a/.now/project.json b/.now/project.json index c52546c..57fdaec 100644 --- a/.now/project.json +++ b/.now/project.json @@ -1 +1 @@ -{"orgId":"vC0ivr1sq0T0zKJytpWAmdFN","projectId":"QmU68M4LipQZeiFKBEhK7WmUX9o8wjXK3RGeuiZ8PSWDDK"} \ No newline at end of file +{"projectId":"QmafwEK3iPMVU8DtcfaHw2MH2wR9YwUNmTarDgEAk3aA2g","orgId":"xr2CldXR2AS9O2w9aQ48bloY"} \ No newline at end of file diff --git a/README.md b/README.md index f53f3d3..ac8a251 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,9 @@ -# react-todo-11th - -## 실행 방법 - -``` -npm install -npm run dev -``` - -- npm install : 필요한 모든 패키지를 설치합니다. 처음 1번만 실행하면 됩니다. -- npm run dev : react 어플리케이션을 브라우저에서 실행합니다. - -## 배포 방법 - -- now에 회원가입하고 now를 설치합니다. - -1. https://zeit.co 에서 회원가입합니다. -2. 터미널에서 npm i -g now를 입력해 now를 글로벌로 설치합니다. -3. 명령 프롬프트에서 프로젝트 폴더에 들어간 후 now를 입력합니다. -4. ID/PW를 입력합니다. -5. zeit 가입시 입력한 이메일에서 인증 링크를 클릭합니다. <인증완료> -6. 다시 프로젝트 폴더에서 now를 입력하면 자동으로 생성된 url에 배포됩니다! - -## 미션 설명 - -[미션 설명](./docs/mission-description/README.md) - -## 미션 제출 방법 - -[미션 제출 방법](./docs/how-to-submit/README.md) + 이번 미션을 통해서 느낀점은 확실히 저번 미션을 통해 CSS와 기본 틀짜기는 매우 숙달됬지만 아직 props 전달은 미숙하다고 생각했습니다. +특히 이번 과제에서 처음에는 input에서 data들을 바로 index로 올려주는 식으로 생각했다가 싹다 갈아엎고 다시 했습니다. +index에서 input태그에 함수를 인자를 넣어주고 data를 받는 식으로 하니 확실히 전체적인 관리가 편해진 것 같습니다. +또한 왜 구글링 할때마다 extend Component와 render()가 나오는지 궁금했었는데 지금까지 Hook를 사용하고 있는지도 모르고 계속 +사용했네요... + +확실히 Hook에 대해서 알고 사용해보니 전부 function Component만 쓰므로 가독성도 올라가고 Hook자체 기능또한 다양하고 좋았던 것 같습니다. +처음에 todoRemove를 구성할 때는 useRef를 id로 주고 filter로 처리하려 했는데 안돼서 하는 수 없이 새로운 state를 id를 주니까는 잘 되었습니다. +왜 useRef로 id를 줬을 때는 안돌아가는지 궁금하네요 ㅠㅠㅜㅜㅠㅠ 또 number타입 일때는 length기능들이 다 막혀서 String으로 변환하고 했는데 코드 돌아가는데는 딱히 상관없던 것 같습니다. diff --git a/components/todo-input.js b/components/todo-input.js index 1844e25..ccf7634 100644 --- a/components/todo-input.js +++ b/components/todo-input.js @@ -1,20 +1,85 @@ -import React from "react"; +import React, { useState } from 'react'; + import styled from "styled-components"; -export default function TodoInput() { +export default function TodoInput({onSubmit}){ + + const [newTodo, setNewTodo] = useState({}); + + const handleFormChange = (e) => { + setNewTodo({...newTodo, [e.target.name]:e.target.value}); + } + return ( - 리액트-투두 -
- 시간을 입력하는 칸 -
- Todo를 입력하는 칸 + + 시간 + + + + TODO +