Frontend ๐Ÿ“š/React 23

[์ฝ”๋”ฉ์• ํ”Œ] ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ Part3 - Styled Components

โœ๏ธ styled-components โœ๏ธ ์„ค์น˜ - ํ„ฐ๋ฏธ๋„ ์—ด์–ด์„œ npm install styled-components - ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ์ปดํฌ๋„ŒํŠธ ๋งจ์œ„์— ์•„๋ž˜์ฒ˜๋Ÿผ import import styled from 'styled-components' โœ๏ธ styled-components ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฒ• - ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ์Šคํƒ€์ผ์„ ๋ฏธ๋ฆฌ ์ฃผ์ž…ํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. // padding : 20px์ธ div๋ฐ•์Šค import styled from 'styled-components'; let Box = styled.div` padding : 20px; color : grey `; let YellowBtn = styled.button` background : yellow; color :..

[์ฝ”๋”ฉ์• ํ”Œ] ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ Part2 - ์ปดํฌ๋„ŒํŠธ, ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ, usenavigate()

// data.js ํŒŒ์ผ let data = [ { id : 0, title : "White and Black", content : "Born in France", price : 120000 }, { id : 1, title : "Red Knit", content : "Born in Seoul", price : 110000 }, { id : 2, title : "Grey Yordan", content : "Born in the States", price : 130000 } ] ; export default data // App.js ํŒŒ์ผ import data from './data.js'; function App(){ let [shoes] = useState(data); return ( (์ƒ๋žต) { sh..

[์ฝ”๋”ฉ์• ํ”Œ] ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ Part1 - React Bootstrap ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, export default / import ๋ฌธ๋ฒ•

โœ๏ธ ์‹œ์ž‘ ์ „์— ์ƒˆ๋กœ์šด ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ! ์•„๋ž˜ ์ฐธ๊ณ . 2023.10.11 - [React/[์™„๊ฐ•] [์ฝ”๋”ฉ์• ํ”Œ] React ๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ๊นŒ์ง€!] - [ ์ฝ”๋”ฉ์• ํ”Œ ] React ๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ Part1 [ ์ฝ”๋”ฉ์• ํ”Œ ] React ๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ Part1 โœ๏ธ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ค์น˜ ๋ฐ ์„ธํŒ… 1. ๊ตฌ๊ธ€์— Nodejs๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ LTS๋ผ๊ณ  ์จ์žˆ๋Š” ๋ฒ„์ „์„ ์„ค์น˜ 2. Visual Studoi Code ์—๋””ํ„ฐ ์„ค์น˜ โœ๏ธ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ 1. ์ž‘์—…์šฉ ํด๋” ๋งŒ๋“ค๊ธฐ(์ฐพ๊ธฐ ์‰ฝ๊ฒŒ ๋ฐ”ํƒ•ํ™”๋ฉด์— ๋งŒ๋“ค๊ธฐ jaejae-sosp.tistory.com โœ๏ธ React-Bootstrap ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ - react bootstrap ์‚ฌ์šฉํ•˜๋ฉด ๋ฒ„ํŠผ, ๋ฉ”๋‰ด์— ์ ์šฉ๋˜๋Š” html, css ์ง์ ‘ ๋””์ž์ธํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค....

[ ์ฝ”๋”ฉ์• ํ”Œ ] React ๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ Part5

โœ๏ธ ๋งŒ๋“  React ์‚ฌ์ดํŠธ build & Github Pages๋กœ ๋ฐฐํฌ 0. ๋ฐฐํฌํ•˜๊ธฐ ์ „ ์ฒดํฌํ•  ์‚ฌํ•ญ (1) ์ผ๋‹จ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋„์›Œ๋ณผ ๋•Œ ์ฝ˜์†”์ฐฝ, ํ„ฐ๋ฏธ๋„์— ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ์•ˆ๋œ๋‹ค (2) ํ˜น์‹œ ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฐํฌํ•  ๋•Œ http://codingapple.com/ ์—ฌ๊ธฐ์— ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ์—” ๋”ฐ๋กœ ์„ค์ •์ด ํ•„์š”์—†์ด ๋Œ€์ถฉ ํ•ด๋„ ๋˜์ง€๋งŒ http://codingapple.com/blog/ ์ด๋Ÿฐ ํ•˜์œ„ ๊ฒฝ๋กœ๋กœ ๋ฐฐํฌํ•˜๊ณ  ์‹ถ์œผ๋ฉด ํ”„๋กœ์ ํŠธ์— ์„ค์ •์ด ๋”ฐ๋กœ ํ•„์š”ํ•˜๋‹ค. ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ์ค‘ package.json ์ด๋ผ๋Š” ํŒŒ์ผ์„ ์˜คํ”ˆํ•ด "homepage": "http://codingapple.com/blog", homepage๋ผ๋Š” ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•œ ํ›„, ๋ฐฐํฌํ•  ์‚ฌ์ดํŠธ ๊ฒฝ๋กœ๋ฅผ ๋’ค์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. (ํ˜น์€ /blog ์ด๋ ‡๊ฒŒ ๊ฒฝ๋กœ๋ฅผ ์จ๋„ ๋จ) ๊ทธ๋ฆฌ๊ณ  ๋ฆฌ์•กํŠธ ๋ผ..

[ ์ฝ”๋”ฉ์• ํ”Œ ] React ๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ Part4

โœ๏ธ Props - ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์˜ state๋ฅผ props ๋ฌธ๋ฒ•์„ ์ด์šฉํ•ด ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋กœ ์ „์†กํ•˜๋ฉด ์ž์‹๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. โœ๏ธ props๋กœ ๋ถ€๋ชจ → ์ž์‹ state ์ „์†กํ•˜๋Š” ๋ฒ• 1. ์ž์‹ ์ปดํฌ๋„ŒํŠธ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์— ๊ฐ€์„œ 2. ์ž์‹ ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“œ๋Š” function์œผ๋กœ ๊ฐ€์„œ props๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๋“ฑ๋ก ํ›„ props. ์ž‘๋ช… ์ด์šฉ ๐Ÿ’‍โ™€๏ธ ์˜ˆ์‹œ function App (){ let [๊ธ€์ œ๋ชฉ, ๊ธ€์ œ๋ชฉ๋ณ€๊ฒฝ] = useState(['๋‚จ์ž์ฝ”ํŠธ ์ถ”์ฒœ', '๊ฐ•๋‚จ ์šฐ๋™๋ง›์ง‘', 'ํŒŒ์ด์ฌ๋…ํ•™']); return ( ) } // props ๋“ฑ๋ก function Modal(props){ return ( { props.๊ธ€์ œ๋ชฉ[0] } ๋‚ ์งœ ์ƒ์„ธ๋‚ด์šฉ ) } โœ๏ธ props๋Š” ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฌธ๋ฒ•๊ณผ ๋˜‘๊ฐ™๋‹ค! function Modal(prop..