앱개발 종합반 내용 포함
expo eject
명령어로 Expo 환경을 완전히 걷어 낸 다음에 순수 리액트 네이티브로 개발 진행Expo
가 적합👉 초기에 앱 기획할 때, 어떤 기능이 필요한지 나열한 다음, Expo에 해당 기능을 지원하는지 안 하는지 먼저 살펴보고, 네이티브단 코드를 건드려야 하는 기능이 있다면 순수 리액트 네이티브로 개발을 진행 (앱의 경중 측면도 고려해야 함)
npm
으로 설치해서 개발 환경을 구축해야 함
- Expo 명령어 도구 설치
npm install -g expo-cli
- Expo 가입 및 로컬에 Expo 계정 세팅
cmd
expo login --username "Expo 사이트 가입당시 입력한 name"
- Expo 프로젝트 생성 및 명령어
expo init wegram
expo start
prettier
규칙 ⇒.prettierrc
파일을app.js
위치에 만들기
{
"semi": true,
"singleQuote": true
}
vscode user setting
{
"editor.formatOnSave": true,
"javascript.format.enable": false,
"window.zoomLevel": 2,
"explorer.confirmDelete": false,
"workbench.iconTheme": "material-icon-theme",
"editor.unusualLineTerminators": "off",
"explorer.confirmDragAndDrop": false,
"prettier.jsxBracketSameLine": true
}
App.jsx
로 확장자 변경
💡 jsx
: <>
태그 문법과 자바스크립트 문법을 동시에 사용
💡 vscode 유용한 도구
아이콘으로 파일 쉽게 구분해주는 도구
괄호 열고 닫고 도와주는 도구
JSX
App.js
는 JSX 문법으로 그려져 준비된 화면을 반환return
은 작성한 JSX 문법으로 구성된 화면을 앱상에 보여주는 역할(1) 모든 태그는 가져와서 사용함
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
export default function App() {
return (
<View>
<Text>Open up App.js to start working on your app!</Text>
<StatusBar style="auto" />
</View>
);
}
(2) 태그는 항상 그냥 닫는 태그와 자체적으로 닫는 태그를 구분해서 사용
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
export default function App() {
return (
//<View>는 결국 두번째 줄 밑에 </View>로 닫히면서 본인 영역을 갖습니다
<View>
<Text>Open up App.js to start working on your app!</Text>
//statusBar는 본인 스스로 닫는 태그이므로 다음과 같이 사용이 가능합니다.
<StatusBar style="auto" />
</View>
);
}
(3) 모든 엘리먼트는 감싸는 최상위 엘리먼트가 있어야 함
< >
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
//App.js가 렌더링 하고 엘리먼트는 결국
//Text와 StatusBar엘리먼트를 감싸고 잇는 View입니다.
export default function App() {
return (
<View>
<Text>Open up App.js to start working on your app!</Text>
<StatusBar style="auto" />
</View>
);
}
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
//View 엘리먼트 밖에 StatusBar가 나와 있으므로 엘리먼트 전체를 감싸는 엘리먼트가
//없어서 오류가 납니다.
export default function App() {
return (
<View>
<Text>Open up App.js to start working on your app!</Text>
</View>
<StatusBar style="auto" />
);
}
</>
라는 의미없는 엘리먼트로 감싸서 렌더링 할 수도 있음
import { StatusBar } from 'expo-status-bar';
import React from 'react';*import { StyleSheet, Text, View } from 'react-native';
export default function App() {
return (
<>
<View>
<Text>Open up App.js to start working on your app!</Text>
</View>
<StatusBar style="auto" />
</>
);
}
(4)
return
에 의해 렌더링 될 땐, 항상 소괄호로 감싸져야 한다.
(5) JSX 문법 밖에서의 주석과 안에서의 주석은 다르다.
//JSX밖에서의 주석
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
//JSX밖에서의 주석
export default function App() {
//JSX밖에서의 주석
return (
//JSX 밖에서의 주석
<View style={styles.container}>
{/*
JSX 문법 안에서의 주석
*/}
<Text>Open up App.js to start working on your app!</Text>
<StatusBar style="auto" />
</View>
);
}
//JSX밖에서의 주석
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});