처음 배우는 리액트 네이티브 책을 필요한 부분만 정리
여러 요소를 반드시 하나의 부모로 감싸야 함
내부에서 자바스크립트 변수를 전달하여 사용할 수 있음
export defualt function App(){
const name = 'mk'
return (
<Text>My name is {name}</Text>
);
}
if문을 즉시 실행 형태로 작성해야함.
JSX 의 경우 null 은 허용, undefined 는 오류 발생한다는 점 유의
{/* 주석을 작성하는 방법 */}
<Text // 태그 안에서 주석 작성
/>
<Text /* 태그 안에서 주석 작성 */ />
export defualt function App(){
const name = 'mk'
return (
<View
style={{
flex: 1,
backgroundColor: '#fff',
}}
></View>
);
}
style 에 문자열로 입력하는 것이 아닌 객체 형태로 입력
background-color 처럼 하이픈 연결은 하이픈 제거하고 카멜 표기법으로 작성
대표적으로 Button 컴포넌트 있음
컴포넌트 새로 만들 수 있음
export defualt MyButton;
이런 식으로 export 후 사용
props: properties 를 줄인 표현으로 부모 컴포넌트로부터 전달된 속성값 혹은 상속 받은 속성값을 말한다. 자식 컴포넌트에서 변경하는 것은 불가능.
<MyButton title="Button" />
이렇게 전달하면 MyButton 컴포넌트의 props로 title이 전달됨
const MyButton = props => {
return (
<Text> {props.title} </Text>
);
};
이런식으로 확인 가능
태그 사이 값은 props.children 으로 전달
Name.defaultProps = {
name: '이름',
};
이런 식으로 아무것도 없을 때 기본 값 지정 가능
필수적으로 전달, 잘못된 타입 등 지정하여 오류 메세지 전달 가능
state 는 컴포넌트 내부에서 생성되고 값을 변경할 수 있음. 이를 이용해 컴포넌트 상태를 관리 (state) 상태가 변하면 컴포넌트 리렌더링 됨.
const [state, setState] = useState(initialState);
useState는 상태를 관리하는 변수와 그 변수를 변경할 수 있는 세터함수를 배열로 반환한다. 상태 변수는 직접 변경하는 것이 아닌 세터 함수를 이용해야함. useState 파라미터에 값을 전달하면 초깃값을 전달할 수 있음.
onClick 이벤트와 가장 유사한 리액트 네이티브 이벤트: press
onPress 와 onLongPress는 누른 시간에 따라 둘 중 하나만 호출된다.
값을 입력하는 TextInput 컴포넌트에서 많이 사용된다.
리액트 네이티브 0.63 이상 버전에서 사용
press 이벤트 동일하게 존재, 동작 방식도 같음
기존 컴포넌트와 다른 특징은 HitRect, PressRect
hitSlop 속성을 주면 됨 (HitRect 끝에서 PressRect 시작)