[스파르타코딩클럽 앱개발 2주차] 정리용

노치현·2022년 8월 28일
0

Expo 클라이언트 설치
sudo npm install -g expo-cli

실행(Expo / React-native)
Npm start (or expo start) // npx react-native start => npx react-native run-android

App.js는 라이브러리, 기능들을 이용해 앱화면을 구성하는 함수

렌더링: JSX문법을 화면에 그려준다는 행위, 동작을 일컬음
(코드로 짜인 데이터를 변환하여 브라우저나, 앱에 전달하는 과정)

  • JSX는 자바스크립트의 확장 문법으로, XML과 유사하게 생겨, 화면의 영역들을 구성함
    (JSX는 코드가 브라우저나 웹에서 실행되기 전에 번들링되는 과정에서 바벨을 사용해 일반 자바스크립트 형태 코드로 변환됨)
  • 바벨은 ES6로 작성한 코드를 Node가 이해하게 변환하는 자바스크립트 컴파일러
  • 번들링은 모듈(분리된 파일)들을 의존성관계를 파악해 그룹화시켜주는 것
  • XML은 HTML과 다르게 데이터를 보여주기만 하는 목적이 아닌, 전달하고 저장하는 목적으로 만들어짐

JSX 문법

  • 모든 태그는 가져와서 사용(리액트나 리액트네이티브는 라이브러리)
  • return에 의해 렌더링될 때 항상 소괄호로 감싸져야 함
  • JSX문법 밖과 안의 주석은 다름(밖은 // , 안은 {/ JSX 문법 안에서의 주석 /} )
  • 엘리먼트(화면의 한 영역):View, Text 등등

JSX 엘리먼트

  • View: 화면의 영역을 담당(분할하고, 영역을 잡으려면 StyleSheet와 같이 사용하여야함)
  • Text: 말그대로 텍스트를 작성하기 위해 사용(없으면 글이 화면에 나오지 않음)
  • ScrollView: 앱화면을 벗어나는 영역을 감싸 스크롤하여 볼 수 있게끔 함(View영역을 감싸서 사용)
  • Button(형식):
  1. return문 밖에서 작성한 함수
const click = () => {
    Alert.alert('JSX 밖에서 함수 구현 가능!');
  };
<Button onPress={click}/> 
  1. 애로우펑션으로 사용
 <Button onPress={() => Alert.alert('Simple Button pressed')} />
  • TouchableOpacity: Button태그는 커스터마이징하기 비효율적인 경우가 많기에
    태그 안에 Text, View, Image 등 다양한 태그를 넣어서 사용가능
  • Image: assets폴더 혹은 경로상의 이미지를 가져와 import해서 사용하거나
    외부 이미지 링크를 넣어서 사용하는 방법이 있음
  1. import favicon from "./assets/favicon.png"
    <Image source={favicon} resizeMode={"repeat"} style={styles.imageStyle} />
  2. <Image source={{uri:'https://images.unsplash.com/photo-1424819827928-55f0c8497861?fit=crop&w=600&h=600%27'}} resizeMode={"cover"} style={styles.imageStyle} />
  • resizeMode에는 cover(비율에 맞게 확대돼어 화면에 꽉참), contain(좌우만꽉차고 상하는 1/3정도), stretch(사이즈를 비율고려안하고 늘려서 화면꽉채움), repeat(원래사이즈 여러개로 화면 꽉참), center(상하좌우 간격있고 가운데정렬)가 있음
  • Styles: const styles =. StyleSheet. create({container{}, textContainer{}, })

  • Flex: 화면의 영역을 차지하는 개념( 전체를 감싸는 flex: 1일때, 그 안의 영역을 비율에따라 1:n 이런식으로 하위 엘리먼트에 매김)

  • Flexdirection: 기본값 column 이고 ‘row’로 하면 가로

  • JustifyContent: flexDirection: 'column'에서 justifyContent는 상하 정렬, flexDirection: 'row'에서 justifyContent는 좌우 정렬을 뜻하고, flex-start, center, flex-end, space-between(첫 플레스 항목과 마지막 항목을 시작과 끝에 배치후 중앙 항목을 같은 간격으로 나열), space-around(모든 항목을 같은 간격으로 나열)

  • AlignItems: justifyContent와 반대로 정렬 column -> 좌우정렬 / row -> 상하정렬
    Flex-start, center, flex-end, stretch(alignitems의 방향으로 컴포넌트 확장)

  • 경로
    ./ : 현재 파일과 동일한 위치
    ../: 현재 파일의 상단 위치

  • {}표현식 안에서 조건문 사용(삼항 연산자)
    조건 ? 참일때 실행 : 거짓일때 실행

profile
느리지만 굳세고 단단하게 성장하고픈 FE

0개의 댓글