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. ์ด์ 1 2 3 ๋ค์ 728x90 ๋ฐ์ํ