728x90 ๋ฐ์ํ react8 [React Native] ์ค์์ดํ ํ๋ฉด ์ญ์ ๋ฒํผ ๋์ค๋ ์ปดํฌ๋ํธ ๊ตฌํํ๊ธฐ (Swipeable Component with delete button) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ค๋์ React-Native์์ ์ปดํฌ๋ํธ๋ฅผ ์ค์์ดํ ํ์ ๋ ์ญ์ ๋ฒํผ์ด ๋์ค๋ ๊ธฐ๋ฅ์ ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Preview Install npm install --save react-native-gesture-handler Screen.tsx import {Swipeable, GestureHandlerRootView} from 'react-native-gesture-handler'; ์ค๋ฅธ์ชฝ์ ๋ค์ด๊ฐ Delete ๋ฒํผ์ ๋ง๋ค์ด ์ค๋๋ค. dragX๋ฅผ ๋ฐ์์ ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ๊ณ , id์ List์ index๋ฅผ ๋ฐ์์ ๋ฒํผ์ ๋๋ ์ ๋ ํด๋น index๋ฅผ ์ถ๋ ฅํด ๋ณด๊ฒ ์ต๋๋ค. const renderRightActions = (dragX, index) => { co.. 2022. 8. 18. [React Native] RTK-Query ํ๋ผ๋ฏธํฐ์ ๋ง๊ฒ ํน์ ๋ฐ์ดํฐ๋ง ๋ถ๋ฌ์ค๊ธฐ(Get specific data by parameter using RTK-query) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ค๋์ RTK-Query์์ ํ๋ผ๋ฏธํฐ์ ๋ง๊ฒ ์ํ๋ ํน์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ง์ ์ฝ์ง์ ํ๊ณ ๊ฒฐ๊ตญ ํด๊ฒฐ๋ฒ์ ์์๋ด๊ฒ ๋์ด ๊ธ๋ก ์ ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ 1. ์ฒซ ๋ฒ์งธ ์๋ ์ฐ์ ์ ๊ฐ ํ๋ ค ํ๋๊ฑด ์ ์ ๋ฅผ ์ด๋ฆ์ผ๋ก ์กฐํํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด์๋๋ฐ์. ์๋์ ๊ฐ์ด ์ฟผ๋ฆฌ๋ฅผ ํตํด์ ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์์ต๋๋ค. export const userAPISlice = createApi({ reducerPath: 'userAPI', baseQuery: fetchBaseQuery({baseUrl: 'http://192.168.111.34:3001/api'}), endpoints: builder => ({ ... getUserByName: builde.. 2022. 8. 12. [React Native] useNavigation์ useRoute ์ด์ฉํด์ ํ๋ฉด ์ด๋ํ๊ณ ๋ฐ์ดํฐ ์ ๋ฌํ๊ธฐ (Move and Pass data between two screens using Hooks) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ํ์์ ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ์์ navigation์ props๋ก ์ ๋ฌํ๋ ๊ฒ ๋๋ฌด ๋ถํธํ๋๋ฐ์. ์ค๋์ React-Native์์ navigation์ props๋ก ์ ๋ฌํ๋ ๊ฒ์ด ์๋, useNavigation๊ณผ useRoute๋ฅผ ๋ง๋ค์ด ์ค์ ํ๋ฉด์ ์ด๋๊ณผ ํจ๊ป ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ ๋ฐ์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Install npm install @react-navigation/native npm install @react-navigation/native-stack npm install @react-navigation/stack npm install react-native-safe-area-context Navigation Navigation/index.ts ๊ธฐ์กด Pro.. 2022. 8. 12. [React Native] ChatApp Socket.io Room ์ ์ฉํ๊ธฐ (feat. TypeScript) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ ๋ฒ ๊ธ์์ Node.js์์ Socket.io๋ฅผ ์ด์ฉํ์ฌ Room์ ๋ง๋ค์ด ๋ณด์๋๋ฐ์. (ํน์ ์๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ์์ ํ์ธํด ์ฃผ์ธ์!) ์ค๋์ ๋ฐฑ์๋ ์๋ฒ์์ ์จ ๋ฐ์ดํฐ๋ฅผ ํ๋ก ํธ์ ์ ์ฉํด ๋ณด๋ ๊ณผ์ ์ ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Preview Install npm install @react-navigation/native npm install @react-navigation/native-stack npm install react-native-screens npm install react-native-safe-area-context npm install socket.io-client ScreenEnums ์คํฌ๋ฆฐ ์ข ๋ฅ๋ฅผ Enum์ผ๋ก ๋ง๋ค์ด ๋์ต๋๋ค. export .. 2022. 8. 10. [React Native] RTK-Query๋ก ์๋ฒ์ ํต์ ํ๊ธฐ (feat. Typescript) Install redux-toolkit npm install @reduxjs/toolkit TodoModel interface TodoModel { id: number; title: string; content: string; } Create API Slice createApi์ fetchBaseQuery๋ฅผ import ํด์ค๋๋ค. import {createApi, fetchBaseQuery} from '@reduxjs/toolkit/query/react'; ์ ๋ TodoList๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋์ ๊ฐ์ด ๋ง๋ค์ด ์ฃผ๊ฒ ์ต๋๋ค. reducerPath: ์คํ ์ด์ reducer๋ก ์ง์ ํ Path์ ์ด๋ฆ baseQuery: ๊ธฐ๋ณธ์ผ๋ก ์ง์ ํ ์๋ฒ URL tagTypes: ์๋์ผ๋ก ๋ฐ์ดํฐ๊ฐ ํจ์น๋๊ฒ ๊ตฌ๋ณํ ํ์ endpo.. 2022. 8. 6. [React Native] Redux-Toolkit์ด๋? (feat. ๊ธฐ์กด Redux์ ๋น๊ต) ์๋ ํ์ธ์. Foma ์ ๋๋ค! ์ ๋ฒ ๊ธ์์ Redux๊ฐ ๋ฌด์์ด๊ณ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง์ ๋ํด ๋ค๋ค์๋๋ฐ์. (์์ง ์ ๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ์์ ๋ณด์๋ฉด ๋ฉ๋๋ค!) Redux์ ๋ํด ์ฐพ์๋ณด๋ Redux๋ฅผ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ํจ์จ์ ์ธ Redux-Toolkit์ด ์๋๋ผ๊ตฌ์. ๊ทธ๋์ ์ค๋์ Redux-Toolkit์ด ๋ฌด์์ด๊ณ ์ ๋ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ํจ์จ์ ์ธ์ง์ ๋ํด ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Redux-Toolkit์ด๋? Redux-Toolkit์ Redux๋ฅผ ๋ง๋ ๊ณณ์์ ๊ณต์์ ์ผ๋ก ํจ์จ์ ์ธ Redux ๊ฐ๋ฐ์ ์ํด ๋ง๋ค์ด์ง ํดํท์ ๋๋ค. Redux ์์ฑํ๋ ์ฝ๋๋ฅผ ๊ฐ๋จํ๊ฒ ์์ฑํ ์ ์๊ณ , Redux ๋ณด๋ค ํจ์ฌ ํจ์จ์ ์ด๋ฏ๋ก ์ฌ์ฉ์ ๊ณต์์ ์ผ๋ก ๊ฐ๋ ฅํ ๊ถ์ฅํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ค ๋ฉด์์ ๋ ํจ์จ์ ์ด๋ผ๋ ๊ฒ ์ผ๊น์? ๊ธฐ.. 2022. 8. 6. [React Native] Redux๋ฅผ ์ด์ฉํด Counter ์ฑ ๋ง๋ค์ด ๋ณด๊ธฐ (feat. Typescript) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ด์ ๊ธ์์ Redux์ ๋ํด ๋ค๋ค๋๋ฐ์. ์ค๋์ ๊ทธ Redux๋ฅผ ์ด์ฉํด ๊ฐ๋จํ Counter ์ฑ์ ๋ง๋ค์ด ๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ (ํ๊ฒฝ์ React Natvie CLI, Typescript๋ก ์งํํ๊ฒ ์ต๋๋ค.) Preview Install Typescript Project Init npx react-native init "ํ๋ก์ ํธ ์ด๋ฆ" --template react-native-template-typescript redux npm install redux react-redux npm install react-redux @types/react-native npm install @types/react-native Counter ๊ฐ์ฅ ๋จผ์ ์นด์ดํฐ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค์ด ์ค.. 2022. 8. 4. [React Native] Redux๋? (feat. Flux) Redux๋? Javascript ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ํ ๊ด๋ฆฌ๋ฅผ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋๋ค. ์ฌ๊ธฐ์ "์ํ?๋ ๋ฐ๋๋ ์ด๋ค ๊ฐ๋ค์ ์๋ฏธํ๋๋ฐ์. ์๋ฅผ ๋ค๋ฉด ๊ณ์ฐ๊ธฐ์์ ์ด๋ค ๋ฒํผ๋ค์ ๋๋ฅด๋ฉด ๊ณ์ฐํ ๊ฐ์ด ๊ณ์ํด ๋ฌ๋ผ์ง์ฃ ? ๋ฐ๋ก ๊ณ์ฐํ ๊ฐ์ด => ๊ณ์ฐํ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ์ํ์ธ ๊ฒ ์ ๋๋ค. Flux๋? Redux๋ Facebook์ Flux ๋์์ธ ํจํด์์ ์ ๋๋ ๊ฒ์ธ๋ฐ์. Flux๋ Web ์ดํ๋ฆฌ์ผ์ด์ ์ MVC ํจํด์ผ๋ก ๊ตฌํํ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ณ ์ ๋ง๋ค์ด ์ก์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ ํ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ์๊น์? ๊ธฐ์กด MVC๋ ์๋์ ๊ฐ์ด Model๊ณผ View๊ฐ ์๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ต๋๋ค. ํ์ง๋ง ์ฑ์ด ์ปค์ง๋ฉด ์ปค์ง์๋ก Model๊ณผ View์ ์๋ฐฉํฅ ์ํต์ด ๋์ด๋ฌ๊ณ , ์ด๊ฒ์ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋น ๋ฅด๊ฒ.. 2022. 8. 3. ์ด์ 1 ๋ค์ 728x90 ๋ฐ์ํ