React Native
[React] status: 상태 변화에 따른 UI 업데이트
민팽
2021. 9. 5. 00:10
React Native로 앱을 개발 시 알아야 하는 React 개념
-컴포넌트(Component) - 상태(State,useState) - 속성(Props) - useEffect
- component : 정해진 엘리먼트들(요소)을 사용하여 만든 화면의 일부분. UI의 요소, 요소를 재사용 가능한 부분으로 조각내서 운영하는 기법(리액트 기반으로 만들어진 페이스북 웹사이트는 운영되는 컴포넌트가 매우 많다고 함)
- 상태(State) : 컴포넌트에서 데이터를 유지하고 관리하기 위한 유일한 방법 -> 사용할 데이터 useState로 상태(state)를 생성하고, setstate로 상태를 변경할 수 있음. 데이터 변경에 따라 각각 다른 화면을 그려줘야 할 때 사용.
- 속성(Props) : 상위 컴포넌트에서 하위 컴포넌트로 데이터를 전달하는 방식 -> 키와 벨류의 형태로 데이터 전달 ex) <Text> 태그의 numberOfLines 속성으로 표현할 글의 라인 수를 지정하고 설정한 수 이상의 라인은 줄임표로 표현, <Image> 태그의 resize 속성으로 이미지가 영역을 차지하는 방식을 나타냄 ex) 직접 만든 Card라는 컴포넌트를 사용하는 곳에 원하는 속성, 예를들어 <Card img={'이미지 주소'}/>라고 입력하면, 그 컴포넌트는 img라는 속성 이름과 그 값으로 '이미지 주소'라는 값을 갖게 됨
- useEffect : 화면에 컴포넌트가 그려지면 처음 실행해야 하는 함수들을 모아두는 곳
useEffect 함수
화면이 그려진 뒤 가장 먼저 실행되는 함수로, 데이터를 준비할 때 사용 -> 데이터를 서버 등에서 받은 후 상태(state)에 반영한다는 뜻
앱 동작 순서: 화면 그리기 -> useEffect가 데이터 준비 -> 상태 업데이트 완료 후 다시 한번 화면 그리기
useEffect(()⇒{
//먼저 실행할 코드
},[])
일반적으로 화면이 먼저 그려지는데, 이 때 사용할 데이터가 준비되어 있지 않으면 오류가 발생한다는 것 잊지 말기 -> useEffect를 이용하여 로딩화면을 만들어주는 등의 방식으로 해결 가능