๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กReact (3)

<Hello Hosung๐Ÿ˜Ž/>

[Expo + React Native] 1. ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ๊ตฌ์กฐ ์™„๋ฒฝ ์ดํ•ด

1. ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Expo + React Native๋ฅผ ์ด์šฉํ•ด ์•ฑ ํ”„๋กœ์ ํŠธ๋ฅผ ์™„์ „ํžˆ ์ดˆ๊ธฐํ™”ํ•˜๊ณ ,ํ•„์š” ์—†๋Š” ํŒŒ์ผ ์ œ๊ฑฐ + ํด๋” ๊ตฌ์กฐ์™€ ์ฃผ์š” ํŒŒ์ผ ์—ญํ• ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด์€ ์ œ์™ธํ•˜๊ณ , ์ดˆ๋ณด์ž๊ฐ€ ํด๋”/ํŒŒ์ผ ์—ญํ• ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. 1๏ธโƒฃ ํ™˜๊ฒฝ ์ค€๋น„1-1. Node.js ์„ค์น˜ ํ™•์ธnode -vnpm -v ๊ถŒ์žฅ Node.js ๋ฒ„์ „: LTS (์˜ˆ: v20.x)๋งŒ์•ฝ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋ฉด nvm ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜:nvm install --ltsnvm use --lts 1-2. Expo CLI ์„ค์น˜ ํ™•์ธ์ตœ๊ทผ Expo๋Š” npx create-expo-app ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.npx create-expo-app --version ๊ธฐ์กด์— expo-cli ์„ค์น˜๋˜์–ด ์žˆ์–ด๋„ ์ด์ œ npx ์‚ฌ..

[React, RN] ํšจ์œจ์ ์ธ ๋ Œ๋”๋ง๊ณผ ๋น ๋ฅธ ๋กœ๋”ฉ์„ ์œ„ํ•œ ์ „๋žต

1. ๋ฆฌ์•กํŠธ ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ์ค‘์š”ํ•œ ์ด์œ ๋ฆฌ์•กํŠธ๋กœ ๋งŒ๋“  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํฌ๊ณ  ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ๋ Œ๋”๋ง ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•ด์ง‘๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๊ฐ€ ๋А๋ฆฌ๊ฒŒ ๋กœ๋”ฉ๋˜๊ฑฐ๋‚˜ ๋ถˆํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ณ„์† ๋ฆฌ๋ Œ๋”๋ง๋˜๋Š” ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์ด ํฌ๊ฒŒ ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ์ตœ์ ํ™”๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ˜์‘ ์†๋„๋ฅผ ๋†’์—ฌ์ค๋‹ˆ๋‹ค.2. ๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง ๋ฐฉ์ง€๋ฆฌ์•กํŠธ๋Š” ์ƒํƒœ(state)๋‚˜ ์†์„ฑ(props)์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฆฌ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ๋ฆฌ๋ Œ๋”๋ง์ด ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.React.memo: ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ props๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฉด ๋ฆฌ๋ Œ๋”๋ง์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.const MyComponent = React.memo(({ data }) => {..

[React, RN] ๋ฆฌ์•กํŠธ ์‹œ์ž‘ํ•˜๊ธฐ๐Ÿ˜€

1. ๋ฆฌ์•กํŠธ ์†Œ๊ฐœ๋ฆฌ์•กํŠธ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ UI๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉฐ, ์ƒํƒœ ๊ด€๋ฆฌ์™€ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. 2. JSX (JavaScript XML)JSX๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ์•ˆ์—์„œ HTML๊ณผ ๋น„์Šทํ•œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.const element = Hello, world!; * JSX๋Š” React.createElement๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.    3. ์ปดํฌ๋„ŒํŠธ (Component)๋ฆฌ์•กํŠธ์—์„œ UI๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.์ปดํฌ๋„ŒํŠธ๋Š” ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์™€ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.  ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธfunction Welcome(props) { return Hello, {props.name};} ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธclass..