노마드 코더스 React Native 마스터클래스 https://nomadcoders.co/react-native-masterclass
First App. React Query, Scroll View, Flat List, Style Components, React Navigation
RN 공홈 Typescript 가이드 참고. 내용은 바뀔 수 있다. (2023-07-09 기준)
- npm install
npm install -D @tsconfig/react-native @types/jest @types/react @types/react-test-renderer typescript
- Add a TypeScript config file. Create a tsconfig.json in the root of your project:
{
"extends": "@tsconfig/react-native/tsconfig.json"
}
tsconfig.json
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@components/*": ["components/*"],
"@navigations/*": ["navigations/*"],
"@screens/*": ["screens/*"],
"@utils/*": ["utils/*"]
}
}
}
- Install
babel-plugin-module-resolver
npm install --save-dev babel-plugin-module-resolver
- Add
babel.config.js
module.exports = function (api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
plugins: [
[
'module-resolver',
{
root: ['./'],
extensions: [
'.ios.ts',
'.android.ts',
'.ios.tsx',
'.android.tsx',
'.ts',
'.tsx',
'.js',
'.jsx',
'.json',
],
alias: {
'@assets': './assets',
'~': './src',
'@components': '~/components',
},
},
],
],
};
};
-
Create file
src/types/styled.d.ts
-
Insert code for
declaration merging
import 'styled-components/native' declare module 'styled-components/native' { export interface DefaultTheme { borderRadius: string; colors: { main: string; secondary: string; }; } }
jsconfig.json
,tsconfig.json
,babel.config.js
- path alias
- intellisense
- typescript
-
React Native에서 Typescript 사용하기
-
interface
및type
number
,string
,boolean
,object
,array
function
- 서로 다른 2개의
object
의Array
가 모두 올 수 있는property
Movie
와Tv
- 특정한 경우에만
type
수정Movie
에서는original_title
이지만Tv
에서는original_name
-
Styled Component
-
React Navigation
App.js
의 onLayoutRootView
참고
React Navigation을 이용하여 Stack Navigation 안에 Nested Navigators Tab & Stack 구현
FlatList
와 React Query의 useQuery
, useInfinityQuery
를 이용하여 API 호출