일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
- 참고블로그
- object
- 게임
- 비동기
- json
- mysql
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- ajax
- https://m.blog.naver.com/tt2t2am1118/221010125300
- addEventListener
- Project
- await
- 동기
- prj
- callback
- promise
- js
- slow and steady
- eport
- 혼프
- Import
- setTimeout()
- async
- webpack
- execCommand
- database
- JS #프로젝트
- sql
- db
- Porject
- Today
- Total
목록⚛️React/⚡ver.1 (12)
C-log
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bm0Yk2/btsDQQYxOit/CdUM3DNg2YUuR6jTS3KtTk/img.jpg)
이번 시간에는 Header부분에 있는 단어 추가하기와 Day추가하기를 구현해 볼 것이다. 포스팅에 앞서 이전 시간에 우리는 fetch를 활용해서 계속해서 개발을 해왔다. 그만큼 API의 중요성을 느꼈을 것이며 이에 다른 custom Hook을 만들었다는 것을 잊지 말아야한다. 더 나아가 Js와 React의 차이가 무엇인지 생각해보면 좋을 듯하다. 이번에 생성할 컴포넌트들을 Route해야하기 때문에 App.js에서 Route를 설정해주자. ClassApp.js import Day from "./component/Day"; import DayList from "./component/DayList"; import Header from "./component/Header"; import EmptyPage fro..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dLXvmO/btsDLrkhSua/L9M0BSHu29Kdwudml1MTrk/img.jpg)
이번 시간에는 PUT을 이용해 체크박스의 체크여부와 DELETE를 구현할 것이다. 이 모든 수행은 Word.js에서 이루어진기 때문에 Word컴포넌트를 살펴보자. import { useState } from "react"; export default function Word(props) { //state를 사용해서 각버튼과 상태를 표현하기 위해서 단어 부분을 따로 컴포넌트로 때어낸다. const [word, setWord] = useState(props.word)//삭제 상태 const [isShow, setIsShow] = useState(false); const [isDone, setIsDone] = useState(word.isDone); //버튼이 클릭 되었을 때 구현 function toggle..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LyjsM/btsDGxfrf19/CkKGy7HhVNzr8wbUAt7hjK/img.jpg)
우리가 전시간에 fetch를 내장한 useEffect를 이용했다. 이는 DayList컴포넌트와 Day컴포넌트에 모두 사용된다. 중첩되는 부분이고 이를 처리하기 위해서 우리들만의 Hook을 제작할 것이다. 아래 함수를 살펴보자. import { useState, useEffect } from "react"; export default function useFetch(url) { const [data, setData] = useState([]); useEffect(() => { fetch(url) .then(res => { return res.json(); }) .then(data => { setData(data); }); }, [url]); return data; } useFetch의 매개변수를 url로 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/683dp/btsDHsEENSn/AzzbYcShE5Wrkcfp8sV0gK/img.jpg)
이전 시간에서는 우리가 json-server를 통해서 API를 가지고 왔다. 가지고온 이 API를 활용하기 위해서 기존에 import 했던 dummy data를 지우고 uesEffect를 사용해서 API로부터 데이터를 가지고 올 것이다. 우선 DayList.js 코드를 살펴보자. * DayList.js import { useState, useEffect } from "react"; import { Link } from "react-router-dom" export default function DayList() { const [days, setDays] = useState([]); useEffect(() => { fetch('http://localhost:3001/days') .then(res => { ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bqsbN7/btsDGvOWABN/mHanrlk7km2gmblHHkUZl0/img.jpg)
이번 시간에는 버튼들을 조작하고 json-server를 활용해서 데이터를 조작하는 방법을 배워 볼 것이다. 우선 버튼 구현을 먼저 해보려고 한다. 들어가기 앞서서 우리가 만들어 놓은 버튼들을 상위, 하위 컴포넌트로 나누어야 한다. props와 useState를 사용하기 위해서다. 아래 코드는 변경된 Day.js파일 모습이며 다로 하위 컴포넌트를 생성한 Word.js파일을 함께 보자. * Day.js import dummy from "../db/data.json"; import { useParams } from "react-router-dom"; import Word from "./Word"; export default function Day() { // const { day } = useParams();..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rIm4d/btsDGIzHLPb/klBFTq4lrAJOsXkRdhmii1/img.jpg)
*처음부터 이전 포스팅에서 컴포넌트를 외부와 내부 또는 상위와 하위라는 단어를 혼용해 사용했지만 이해를 위해 이제는 상위와 하위로 통일해 사용할 것이다. react router dom은 a태그와 같은 역할을 한다. url의 값을 변경할 있다는 것이다. 예전에는 switch를 import해서 Router를 동시에 사용했지만 현재는Routes로 변경되었다. 그리 어렵지는 않으니 찾아보면 쉽게 따라 할 수 있을 것이다. 먼저 App컴포넌트를 살펴보자. * ClassApp.js import Day from "./component/Day"; import DayList from "./component/DayList"; import Header from "./component/Header"; import EmptyP..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cAjQoC/btsDGXXPu4W/5HZvsBQbyX9vmwDmGWUN11/img.jpg)
이전 포스팅에서 스스로에게 해봐야 할 것을 내가 적고 마쳤다. 오늘은 다음 수업에 들어가기 앞서서 내가 강의에서 할 실습을 미리 해보았다. 우선 day를 나열 했는데 이를 가지고 동적인 웹페이지를 만드는 것이였다. 우선 li태그안에 button태그를 삽입 해줘야 한다. 이후 해당 버튼을 눌렀을 때 클릭 반응이 있을 수 있게 해줘야한다. Day컴포넌트를 먼저 살펴보면 아래와 같다. * My_App.js import { useState } from "react" import Day from "./mycomponent/Day"; import DayList from "./mycomponent/DayList"; import Header from "./mycomponent/Header"; function Class..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/L7Nvg/btsDBw6XZ0U/it2TlzGPvSuftY0Atlqpp0/img.jpg)
이번 수업 시간은 본격적인 실습을 하는 수업이다. 여기서 우리는 컴포넌트를 3개를 만들어야한다. 우선 App에서 랜더링이 되는 ClassApp.js파일을 살펴보자.(참고로 css파일은 index.js파일에 import해둔 상태이다. index.css와 data.js는 해당 강의의 강의 자료에서 살펴볼 수 있다.) * ClassApp.js import Day from "./component/Day"; import DayList from "./component/DayList"; import Header from "./component/Header"; function ClassApp() { return ( ); } export default ClassApp; 구성은 이렇게 되어 있다. Header컴포넌트는 별..