๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

๐Ÿš€ Development/React Native12

[React Native] State์™€ React Hook(useState) - ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์™€ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ ๋™์ ์ธ ๋ฐ์ดํ„ฐ ๋‹ค๋ฃจ๊ธฐ State ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ๋™์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋• state๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.(๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜๋ผ๊ณ  ์ƒ๊ฐ) setState state์— ์žˆ๋Š” ๊ฐ’์„ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฌด์กฐ๊ฑด this.setState๋ฅผ ๊ฑฐ์ณ์•ผํ•œ๋‹ค. ๋ฆฌ์•กํŠธ์—์„  ์ด ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง ๋˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. setState๋Š” ๊ฐ์ฒด๋กœ ์ „๋‹ฌ๋˜๋Š” ๊ฐ’๋งŒ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค state๋ฅผ ์ด์šฉํ•œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ˆซ์ž(number)๊ฐ€ ์นด์šดํŠธ ๋˜๋Š” ์ฝ”๋“œ import React, { Component } from 'react'; import {View, Text, Button} from 'react-native'; class App extends Component { state = { number: 0 }; up = () => { this.setS.. 2023. 6. 15.
[React Native] Props ๋ž€? ์˜ˆ์ œ Props, State๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…์ด๋‹ค. โ€‹ ๋ฆฌ์•กํŠธ๋Š” ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ”Œ๋กœ์šฐ(one-way data flow) props๋ฅผ ๋ฐ›์€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋Š” ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ณ , ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ฐ’์„ ์ „๋‹ฌํ•  ์ˆ˜ ์—†๋‹ค. ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ์˜ ๋ณ€ํ™”๋กœ ์ธํ•ด ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ณ€ํ™”ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— state๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉด ๋œ๋‹ค. โ€‹ Props๋Š” ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉ ํ•  ๋ฐ์ดํ„ฐ ์ค‘ ๋ณ€๋™๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. Props props๋Š” ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ๊ฐ’์„ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ -> (์ž์‹ ์ž…์žฅ์—์„œ) ์ฝ๊ธฐ ์ „์šฉ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” props๋ฅผ ๋ฐ›๊ธฐ๋งŒํ•˜๊ณ , ๋ฐ›์•„์˜จ prpos๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค. defaultProps: props์— ๊ฐ’์„ ์ž…๋ ฅํ•ด์ฃผ์ง€ ์•Š์•˜์„ ๋•Œ,.. 2023. 6. 15.
React Native ์ปดํฌ๋„ŒํŠธ๋ž€? / ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์™€ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ํŠน์ง• ์ปดํฌ๋„ŒํŠธ๋ž€? ์ปดํฌ๋„ŒํŠธ๋Š” UI๋ฅผ ๋…๋ฆฝ์ ์ด๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ธฐ๋Šฅ ๋‹จ์œ„๋ณ„๋กœ ๋‚˜๋ˆ  ๋†“์€ ๋‹จ์œ„์ด๋‹ค. ํ™”๋ฉด์˜ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ปดํฌ๋„ŒํŠธ๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋˜ํ•œ, ๋ผ์ดํ”„ ์‚ฌ์ดํด API๋ฅผ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚  ๋•Œ, ์‚ฌ๋ผ์งˆ ๋•Œ, ๋ณ€ํ•  ๋•Œ ์ž‘์—…๋“ค์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ SafeAreaView ์ƒ๋‹จ์— ์ƒํƒœ ๋ฐ”์™€ ํ•˜๋‹จ์— ํ™ˆ ๋ฒ„ํŠผ ์˜์—ญ์„ ์ œ์™ธํ•œ ์˜์—ญ์— ์ฝ˜ํ…์ธ ๋ฅผ ํ‘œ์‹œํ•  ๋•Œ ์‚ฌ์šฉ View ์ƒํƒœ๋ฐ”์™€ ํ™ˆ ๋ฒ„ํŠผ ์˜์—ญ๊นŒ์ง€ ์ฝ˜ํ…์ธ  ํ‘œ์‹œ StyleSheet ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์ปดํฌ๋„ŒํŠธ์— ์Šคํƒ€์ผ ์ ์šฉํ•  ๋•Œ ์‚ฌ์šฉ ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ์—์„œ ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ธ๋ผ์ธ ์Šคํƒ€์ผ๊ณผ StyleSheet๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Œ ScrollView ํ™”๋ฉด ์Šคํฌ๋กค์ด ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ ํ™”๋ฉด ์Šคํฌ๋กค์ด ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋กœ๋Š” FlatList,.. 2023. 6. 15.
[React Native] JSX ๋ž€? / JSX ๋ฌธ๋ฒ• JSX๋ž€? JavaScript์—์„œ XML์„ ์ถ”๊ฐ€ํ•œ ํ™•์žฅํ˜• ๋ฌธ๋ฒ•์ด๋‹ค. XML(eXtensible Markup Language)์€ ํƒœ๊ทธ(tag, )์˜ ์ด๋ฆ„์„ ์ž์œ ๋กญ๊ฒŒ ์ง“๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์ด๋‹ค. ์ด๋ฅผ JavaScript์— ์ ์šฉ ์‹œํ‚จ ๊ฒƒ์ด ๋ฐ”๋กœ JSX์ด๋‹ค. โ€‹ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ฝ”๋“œ๊ฐ€ ๋ฒˆ๋“ค๋ง๋˜๋Š” ๊ณผ์ •์—์„œ ๋ฐ”๋ฒจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ฐ˜ JavaScript ํ˜•ํƒœ์˜ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. โ€‹ * ๋ฐ”๋ฒจ(Babel) ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Babel์„ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์ด๋‹ค. ์ดˆ๊ธฐ์˜ ๋ฐ”๋ฒจ์€ ES6 ์ฝ”๋“œ๋ฅผ ES5 ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด ์ฃผ๋Š” ์ผ๋งŒ ํ–ˆ์ง€๋งŒ, ํ˜„์žฌ๋Š” ๋ฆฌ์•กํŠธ์˜ JSX๋ฌธ๋ฒ•๋„ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค. ํŠธ๋ Œ์ŠคํŒŒ์ผ๋Ÿฌ๋Š” ์†Œ์Šค๋ฅผ ์ž…๋ ฅ ๋ฐ›์œผ๋ฉด ๋‹ค๋ฅธ ์†Œ์Šค๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์˜.. 2023. 6. 15.
728x90
๋ฐ˜์‘ํ˜•