๋ชฉ๋ก2022/02 (81)
whatisthis?
React JS - Movie App project (part 2) { fet.." data-og-host="mywebproject.tistory.com" data-og-source-url="https://mywebproject.tistory.com/355" data-og-url="https://mywebproject.tistory.com/355" data-og-image="https://scrap.kakaocdn.ne.. mywebproject.tistory.com ๐บ ์ง๋์๊ฐ ์งํ์ฌํญ - props ์ด์ฉ - component ๊ตฌ๋ถ (App.js / Movie.js / Home.js / Detail.js) - ๋๋ ํฐ๋ฆฌ ๊ตฌ๋ถ (components / route) 1/ ์ฐ์ React Router์ ์ค์นํด..
React JS - Movie App project (part 1) React JS Movie App (part 1) step1. API fetch ํ๊ณ / loading์ฐฝ ๋ง๋ค๊ธฐ import { useEffect, useState } from "react"; function App() { const [loading, setLoading] = useState(true); useEffect(() => { fet.. mywebproject.tistory.com ๐บ ์ง๋๋ฒ ์งํ์ฌํญ - fetch(async-await ์ด์ฉ) API - Arr.map() ์ผ๋ก ๊ฐ ์์ ๋ ๋๋ง ์ง๊ธ๊น์ง์ ์ฝ๋ ๐ป App.js import { useEffect, useState } from "react"; function App()..
React JS Movie App (part 1) step1. API fetch ํ๊ณ / loading์ฐฝ ๋ง๋ค๊ธฐ import { useEffect, useState } from "react"; function App() { const [loading, setLoading] = useState(true); useEffect(() => { fetch( `https://yts.mx/api/v2/list_movies.json?minimum_rating=9&sort_by=year` ) .then(response => response.json()) .then(json => console.log(json)); }, []); return {loading ? loading... : null}; } export defau..
Coin Tracker - ์ํธํํ์ ๊ทธ ๊ฐ๊ฒฉ์ ๋์ดํจ - useEffect practice - ํ์ด์ง ๋ค์ด์์ ๋ ๋ก๋ฉ๋ฉ์์ง๊ฐ ๋ณด์ด๊ณ , ์ฝ์ธ๋ค์ด ๋์ด๋๋ฉด ๋ก๋ฉ์ ์จ๊น. App.js import { useState } from "react"; function App() { const [loading, setLoading] = useState(true); return ( The Coins {loading ? Loading... : null} ); } export default App; API ๊ฐ์ ธ์ค๊ธฐ ๐ป fetch("https://api.coinpaprika.com/v1/tickers"); API๋ ์น์ฌ์ดํธ ๋ก๋์ ๋งจ์ฒ์ ํ ๋ฒ๋ง ์คํํด์ผ ํ๋ฏ๋ก์ด์ ์ ๋ฐฐ์ ๋ useEffect๋ฅผ ์ฌ์ฉํ์. useEffect..
To Do List App - React JS ์ฐ์ต์ฉ - create-react-app ์ฌ์ฉ part1. 1 / ๊ธฐ๋ณธ ํ + ์ด๋ฒคํธ๋ฆฌ์ค๋ ๋ง๋ค๊ธฐ App.js import { useState } from "react"; function App() { const [toDo, setToDo] = useState(""); const onChange = e => { setToDo(e.target.value); }; const onSubmit = e => {// form ์ ์ถ์ e.preventDefault(); if (toDo === "") {// toDo๊ฐ ๊ณต๋ฐฑ์ด๋ฉด ํจ์๋ฅผ ๋๋ด๋ฒ๋ฆผ return; } setToDo("");// submitํ input์ value๋ฅผ ๊ณต๋ฐฑ์ผ๋ก }; return ( Add To Do..
์ฐธ๊ณ - ์์ฃผ ์ฌ์ฉํ์ง ์๋๋ค. import { useState } from "react"; function App() { const [showing, setShowing] = useState(false); const onClick = () => { setShowing(prev => !prev); }; return ( {showing ? "Hide" : "Show"} ); } export default App; ์์ธํ ์ค๋ช ์ ์ด์ ์๋ตํ๊ฒ ์.. (๋จ์ useState๋ฅผ ์ด์ฉํ ๊ฒ) ์ด์ ์จ๊น ๋ฒํผ์ ๋ง๋ค์์ผ๋ ์จ๊ธธ ๋์(์ฃผ๋ก ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ฅผ ์จ๊ธฐ๊ณ ๋ํ๋ธ๋ค)์ ๋ง๋ค์ด๋ณด์. function Hello() { return Hello; } ๋จ์ํ๊ฒ h1 jsx๋ฅผ ๋ฆฌํดํ๋ Hello ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ ํ func..
React. React JS - Effects (1) React JS State Props Effects App.js const [counter, setValue] = useState(); import { useState } from "react"; ์๋์ผ๋ก import๋ฌธ์ด ์๊ธด๋ค. ์ด์ ์ฒ๋ผ React.useState()๋ผ๊ณ ์ํ๊ณ ๊ทธ๋ฅ useState()๋ง ํ๋ฉด.. mywebproject.tistory.com ์ง๋ ํฌ์คํ ์ ๋ด์ฉ์ ์ด์ด์ ์งํ๋จ. ๐ useEffect useEffect๋ ๋๊ฐ์ argument๋ฅผ ๊ฐ์ง๋ ํจ์์ด๋ค. arg1 > effect: EffectCallback (ํ๋ฒ๋ง ์คํํ ์ฝ๋๋ฅผ ๋ด์ ์ฝ๋ฐฑ) arg2 > deps?DependencyList const [keyword, setKe..
React JS State Props Effects App.js const [counter, setValue] = useState(); import { useState } from "react"; ์๋์ผ๋ก import๋ฌธ์ด ์๊ธด๋ค. ์ด์ ์ฒ๋ผ React.useState()๋ผ๊ณ ์ํ๊ณ ๊ทธ๋ฅ useState()๋ง ํ๋ฉด ๋๋ค! ์ฌ๊ธฐ์ ์ด์ ์ ๋ฐฐ์ ๋๋๋ก onClickํจ์๋ฅผ ๋ง๋ค์ด ๋ฒํผ์ onClick prop์ ์ฐ๊ฒฐํด์ฃผ์. ๐ป App.js ์ ์ฒด์ฝ๋ import { useState } from "react"; function App() { const [counter, setValue] = useState(0); const onClick = () => setValue(prev => prev + 1); return ( ..
์ฐ์ , ๋ฒํผ์ ํด๋นํ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ด์ Button.js๋ฅผ ๋ง๋ฌ >> ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ๋ฅผ ํ๋์ jsํ์ผ๋ก ๋ฐ๋ก ๊ด๋ฆฌ! Button.js function Button({ text }) { return {text}; } export default Button; App.js ์์ - import Button - Button ์ฌ์ฉ App.js import Button from "./Button"; function App() { return ( Welcome back! ); } export default App; ** prop-types ํจํค์ง ์ค์น ๐ป ํฐ๋ฏธ๋์ฐฝ์ ์๋์ ๊ฐ์ด ์ ๋ ฅ npm i prop-types Button.js import PropTypes from "prop-types"; function Bu..
create-react-app ๊ฐ์ฅ ๋จผ์ ํ ๊ฒ์ node js์ ์ค์น์ด๋ค. Node. Node Js + NPM ์ด๋? Node.js๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ธ๋ผ์ฐ์ ์ธ์ ๋ค๋ฅธ ํ๊ฒฝ์์๋ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐํ์์ ๋๋ค. http์๋ฒ๊ฐ ๋ด์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ณดํต์ ์๋ฒ๋ก ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ํ์ง๋ง ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํ mywebproject.tistory.com node js ์ค์น + npm์ด๋ ๋ฌด์์ธ์ง์ ๋ํด ์ ํฌ์คํ ์ ์ ๋ฆฌํ์๋ค. node๊ฐ ์ ์ค์น๋์๋ค๋ฉด, cmd์ฐฝ์ ์ด์ด npx create-react-app (ํ๋ก์ ํธapp์ด๋ฆ)์ ์ ๋ ฅํ๋ค. npx create-react-app project ์ค์น๊ฐ ์๋ฃ๋์์ผ๋ฉด (Happy hacking!์ด๋ผ ๋ธ) ํด๋น ๋๋ ํฐ๋ฆฌ์ ๋ค์ด๊ฐ๋ณด์. ์์ ๊ฐ์ด package..