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

๐Ÿš€ Development59

[React Native] ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ๋ง CSS import “./style.css”;๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์œผ๋กœ, css๋ฅผ ์ด์šฉํ•˜์—ฌ ์Šคํƒ€์ผ๋งํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. CSS๋กœ ์Šคํƒ€์ผ๋ง์„ ํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ, ์ด๋Ÿด ๋• SASS ๋˜๋Š” SCSS ๋“ฑ์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. Sass(syntactically awesome stylesheet) ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” css ์ „์ฒ˜๋ฆฌ๊ธฐ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. css3์˜ ํ™•์žฅ์œผ๋กœ Dart๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ๋” ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. ์Šคํƒ€์ผ ์ฝ”๋“œ์˜ ์žฌํ™œ์šฉ์„ฑ์„ ๋†’์—ฌ์ฃผ๊ณ  ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋ฏ€๋กœ ์œ ์ง€๋ณด์ˆ˜์— ๋„์›€์ด ๋œ๋‹ค. ํ™•์žฅ์ž๋Š” .scss์™€ .sass ๋‘๊ฐ€์ง€๋ฅผ ์ง€์›ํ•œ๋‹ค. .sass Importํ•˜๊ธฐ ์œ„ํ•ด์„œ node-sass๋ฅผ ์„ค์น˜ํ•œ๋‹ค. $ yarn add node-sass //utils.scss @impo.. 2023. 6. 15.
[React Native] context API๋ž€ context API ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  React๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Component๋งˆ๋‹ค ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ ์  ์ปค์ง€๊ณ  ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ์ปดํฌ๋„ŒํŠธ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ๋งŽ์•„์ง€๊ณ  ๋ณต์žกํ•ด์ง„๋‹ค. ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ›จ์”ฌ ์‰ฝ๊ฒŒ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋‹ค Context API๋ž€? ๋ถ€๋ชจ๋ถ€ํ„ฐ ์ž์‹์—๊ฒŒ props๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜์ง€๋งŒ, contex API๋ฅผ ์ด์šฉํ•˜๋ฉด ํŠธ๋ฆฌ ๋‹จ๊ณ„๋งˆ๋‹ค props๋ฅผ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š์•„๋„ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ ์ „์ฒด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ธ์ œ Context API ์‚ฌ์šฉ ํ•˜๋Š”๊ฐ€? Globalํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ์•ˆ๋œ ๋ฐฉ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋น„์Šทํ•œ ๋ฐ์ดํ„ฐ๋กœ๋Š” ํ˜„์žฌ ๋กœ๊ทธ์ธํ•œ ์œ ์ €(๋กœ๊ทธ์ธ ๋ฐ์ดํ„ฐ), ํ…Œ๋งˆ, ์„ ํ˜ธํ•˜๋Š” ์–ธ์–ด ๋“ฑ์ด ์žˆ๋‹ค. ์ฃผ์˜ํ•  ์  ์ „์—ญ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๊ณณ์—์„œ.. 2023. 6. 15.
[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.
728x90
๋ฐ˜์‘ํ˜•