[ReactNative] <FlatList> ์™€ <ScrollView>
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 4. 21:42

Today, What I Learned? ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ๊ณต์‹๋ฌธ์„œ์˜ ScrollView๋ฅผ ๋ณด๋‹ค๊ฐ€ ์™€์˜ ๋น„๊ตํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด ์ •๋ฆฌํ•ด ๋ณด๊ณ , ํ˜„์žฌ ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ์˜ํ™” ์•ฑ์˜ ScrollView ๋ถ€๋ถ„์„ FlatList๋กœ ๋ฐ”๊ฟ”๋ณด๋Š” ์ž‘์—…์„ ๊ธฐ๋กํ•ด๋‘๋ ค ํ•œ๋‹ค. vs ์œ„ ์บก์ฒ˜๋Š” ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ๊ณต์‹ ๋ฌธ์„œ์—์„œ ๋ฐœ์ทŒํ•ด์˜จ ๋ถ€๋ถ„์ด๋‹ค. ์‚ดํŽด๋ณด๋ฉด ๋Œ€๋žต ์ด๋Ÿฐ ๋‚ด์šฉ์ด๋‹ค. ScrollView๋Š” ๋ Œ๋” ์‹œ์— ๋ชจ๋“  ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ํ•œ ๋ฒˆ์— ๊ฐ€์ ธ์™€์„œ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ๋‹ค. FlatList๋Š” ๋ Œ๋” ์‹œ์— ๋ณด์ด๋Š” ๊ฒƒ๋“ค๋งŒ lazilyํ•˜๊ฒŒ ๊ฐ€์ ธ์˜ค๊ณ , ์Šคํฌ๋กค์„ ๋‚ด๋ ค์•ผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์•„์ดํ…œ๋“ค์€ ์ง€์›Œ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์™€ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค. FlatList๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค. ํ—ค๋” / ํ‘ธํ„ฐ ์ง€์› horizontal mode ์ง€์› ๋‚ด๋ ค ๋‹น๊ฒผ์„ ..

์ปค์Šคํ…€ํ›…์œผ๋กœ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ input ๋ฆฌํŒฉํ† ๋งํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 2. 22:20

Today, What I learned? ์ปค์Šคํ…€ ํ›…์— ์ต์ˆ™ํ•ด์ ธ ๋ณด๊ธฐ ์œ„ํ•ด ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋ง ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ธฐ์กด์˜ ์ฝ”๋“œ ์ค‘์—์„œ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ปค์Šคํ…€ํ›…์œผ๋กœ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค. state์™€ dispatch, submitHandler ๊นŒ์ง€ ๋ชจ๋‘ ๊ฐ€์ ธ์™”๋‹ค. useInput import { useState } from 'react'; import { useDispatch } from 'react-redux'; import { nanoid } from '@reduxjs/toolkit'; import { __addTodos } from '../redux/modules/todoSlice'; const useInput = () => { const [title, setTitle] = useState('');..

[ReactNative] AsyncStorage๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2022. 12. 30. 16:40

Today, What I learned? ์›น์ด๋‚˜ ์•ฑ์ด๋‚˜ ์–ด๋–ค ์ •๋ณด๋“ค์„ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ์™•์ฐฝ ๋งŒ๋“ค๊ณ  ์žˆ์œผ๋‹ˆ ์ด๊ฑธ ์˜ˆ์‹œ๋กœ ๋“ค์ž๋ฉด, ์ƒˆ๋กœ๊ณ ์นจํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒ ํ›„ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์ „์— ์ž‘์„ฑํ–ˆ๋˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‚จ์•„์žˆ๋Š” ๊ฒƒ์ด ํ•„์ˆ˜! ๋ธŒ๋ผ์šฐ์ €์— ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์žˆ๋‹ค๋ฉด, React Native์—์„œ๋Š” AsyncStorage๋ฅผ ์ด์šฉํ•ด์„œ ์ €์žฅํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. Async Storage ๊ณต์‹ ๋ฌธ์„œ์— ๋“ค์–ด๊ฐ€ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ์ด ์žˆ๋‹ค. Data storage system for React Native. ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€! ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ์‹์ด Local Storage๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๊ฑฐ์˜ ํก์‚ฌํ•˜๋‹ค. https://react-native-async-storage.g..

[React Native] Expo๋กœ RN ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2022. 12. 29. 19:30

React Native ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋Š” ๋ฆฌ์•กํŠธ๋กœ ๋ชจ๋ฐ”์ผ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค. ๋ชจ๋ฐ”์ผ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์ด ์žˆ์ง€๋งŒ, ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋‹ค. ๋น„์šฉ ์ ˆ์•ฝ ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ, iOS ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ One Source, ์ฆ‰ ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋กœ ๋™์‹œ์— ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๋น„์šฉ, ์‹œ๊ฐ„ ์ธก๋ฉด์—์„œ ํฌ๊ฒŒ ์ ˆ์•ฝ๋œ๋‹ค. ๋‚ฎ์€ ๋Ÿฌ๋‹์ปค๋ธŒ ๋„ค์ดํ‹ฐ๋ธŒ ์—ญ์‹œ ๋ฆฌ์•กํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด์— ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ค„ ์•„๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋น ๋ฅด๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ์˜ ์ตœ๊ทผ ์•„ํ‚คํ…์ฒ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค. React Native ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ํ”„๋กœ์ ํŠธ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ์—์„œ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋‹ค...

[React] API์„œ๋ฒ„ env ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ ์šฉํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2022. 12. 27. 22:21

์„œ๋ฒ„ ์ฃผ์†Œ๋ฅผ ๋…ธ์ถœ์‹œํ‚ค์ง€ ์•Š๊ธฐ ์œ„ํ•ด .env ํŒŒ์ผ์„ ์ด์šฉํ•ด์„œ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ ์šฉํ•ด๋ณด๊ธฐ๋กœ!.. ์ž์ฃผ ์“ฐ๋Š” ๊ฒฝ๋กœ๋‚˜ ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ํŽธํ•˜๊ฒŒ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋‹ค. ๋จผ์ € .env ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค. ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฆฌ์•กํŠธ์—์„œ ์‚ฌ์šฉํ•ด์ฃผ๋ ค๋ฉด ์•ž์— REACT_APP ํ‚ค์›Œ๋“œ๋ฅผ ๊ผญ ๋ถ™์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค. url ์ฃผ์†Œ๋ฅผ ๋„ฃ๋Š”๋‹ค๋ฉด ๊ตณ์ด ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค! ๋ณ€์ˆ˜ ์‚ฌ์šฉ ์•„๋ž˜์™€ ๊ฐ™์ด process.env.[๋ณ€์ˆ˜์ด๋ฆ„]์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. await axios.patch(`${process.env.REACT_APP_API_URL}/articleComment/${id}`,{...comment,}); ์ฒ˜์Œ์—๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ ๊ณ„์† 404 ์˜ค๋ฅ˜๊ฐ€ ๋–ด๋‹ค.. ๐Ÿ˜‡ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ช… ๊ทธ๋Œ€๋กœ ๋„ฃ์–ด์ค˜์•ผ ํ•˜๋Š”๋“ฏ! awai..

[React] Material UI ์ด์šฉํ•ด์„œ ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ ์šฉํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2022. 12. 23. 21:30

ํŽ˜์ด์ง€๋„ค์ด์…˜? ๋ฌดํ•œ ์Šคํฌ๋กค? ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ฒŒ์‹œ๊ธ€ ์ฝ˜ํ…์ธ  ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์งˆ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด์„œ ํŽ˜์ด์ง€๋„ค์ด์…˜์ด๋‚˜ ๋ฌดํ•œ์Šคํฌ๋กค์„ ์ ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ฒŒ์‹œ๊ธ€ ํŠน์„ฑ์ƒ, ํ•˜๋‹จ์— ๊ธ€์“ฐ๊ธฐ ๋ฒ„ํŠผ์ด ํ•ญ์ƒ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌดํ•œ์Šคํฌ๋กค๋ณด๋‹ค๋Š” ํŽ˜์ด์ง€๋„ค์ด์…˜์ด ๋” ์ ํ•ฉํ•˜๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์œผ๋กœ!.. ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. MUI์˜ Pagination ์ปดํฌ๋„ŒํŠธ MUI์—์„œ ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์Šคํƒ€์ผ์˜ ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. https://mui.com/material-ui/react-pagination/#main-content React Pagination component - Material UI The Pagination component enables the user to select ..

React redux์™€ ํ•จ๊ป˜ axios๋ฅผ ์ด์šฉํ•ด์„œ deleteํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2022. 12. 22. 21:54

Today, What I learned? ์˜ค๋Š˜์€ axios๋ฅผ ๋‹ค๋ฃจ๋‹ค๊ฐ€ ๋งŒ๋‚œ ์—๋Ÿฌ์— ๋Œ€ํ•ด์„œ ์จ๋ณด๋ ค ํ•œ๋‹ค. JSON-Server๋กœ redux-thunk๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ CRUD ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์ถ”๊ฐ€๊นŒ์ง€๋Š” ์–ด์ฐŒ์–ด์ฐŒํ–ˆ๋Š”๋ฐ ์‚ญ์ œ๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„.. ํ™”๋ คํ•œ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฅผ ๋ฐ˜๊ฒผ๋‹ค. ์—๋Ÿฌ์™€ ์›์ธ payload์™€ ๊ด€๋ จํ•ด์„œ ์ƒ๊ธด ์˜ค๋ฅ˜์ธ ๋“ฏ ๋ณด์˜€๋‹ค. ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ๋Š” ์ด๋žฌ๋‹ค. ์ถ”๊ฐ€ํ–ˆ๋“ฏ์ด payload๋กœ id๋ฅผ ๋ณด๋‚ด์ฃผ๋ฉด ๋  ์ค„ ์•Œ์•˜๋Š”๋ฐ!!... ์•„๋‹ˆ์—ˆ๋˜ ๊ฒƒ. ์ดํ›„์— ์ € ๊ณต๊ฐ„์— data๋ผ๋Š” ๊ฐ์ฒด๋กœ ๊ฐ์‹ธ์„œ payload๋ฅผ ๋„˜๊ฒจ๋ณด๊ธฐ๋„ ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ๋˜‘๊ฐ™์•˜๋‹ค. Axios ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด HTTP ๋ฉ”์„œ๋“œ์— ๋”ฐ๋ผ์„œ ๋“ค์–ด๊ฐ€๋Š” ์ธ์ž๊ฐ€ ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด post ๋ฉ”์„œ๋“œ๋กœ ๋ณด๋‚ผ ๊ฒฝ์šฐ์—๋Š” ๋‘ ๋ฒˆ์งธ ์ธ์ž์ธ payload๊ฐ€ d..

[React] Material UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2022. 12. 21. 21:17

Today, What I learned? ํ”„๋กœ์ ํŠธ์— ์“ธ ์ˆ˜๋„ ์žˆ๋Š”(?) UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ•œ๋ฒˆ ๋ง›๋ณด๊ธฐ๋กœ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋‹ค. ์ด๋ฒˆ์— ์ฒ˜์Œ ์•Œ๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ Material UI๋Š” ๋ฆฌ์•กํŠธ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ๊ฒƒ์ด๋ผ๊ณ !... ์˜ค๋Š˜์€ ๊ฐ„๋žตํ•œ ์„ค์น˜ ๋ฐฉ๋ฒ•๊ณผ ํ™œ์šฉ์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค. Material UI Material UI๋Š” ๊ตฌ๊ธ€์˜ Material Design์„ ๋ฐ”ํƒ•์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ฆฌ์•กํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์ฒ˜๋Ÿผ ๊น”๋”ํ•˜๊ณ  ์ •๋ˆ๋œ UI๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ์™€ ์ถ”๊ฐ€์ ์ธ ์ •๋ณด๋Š” ์•„๋ž˜ ์‚ฌ์ดํŠธ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. https://mui.com/ MUI: The React component library you always wanted MUI provides a simple, customiza..