728x90
/**
* Sample React Native App
* https://github.com/facebook/react-native
*
* @format
*/
import React from 'react';
import type {PropsWithChildren} from 'react';
import {
SafeAreaView,
ScrollView,
StatusBar,
StyleSheet,
Text,
useColorScheme,
View,
} from 'react-native';
import {
Colors,
DebugInstructions,
Header,
LearnMoreLinks,
ReloadInstructions,
} from 'react-native/Libraries/NewAppScreen'; //실제 개발엔 사용되지 않는 홈화면 튜토리얼을 위한 라이브러리
type SectionProps = PropsWithChildren<{ //PropsWithChilderen:자식의 속성을 지정해 번거로움을 줄여주는 애인듯..
title: string;
}>;
function Section({children, title}: SectionProps): JSX.Element {
const isDarkMode = useColorScheme() === 'dark';
return (
<View style={styles.sectionContainer}> //아래 지정된 스타일대로 뷰를 꾸미겠다.
<Text
style={[
styles.sectionTitle,
{
color: isDarkMode ? Colors.white : Colors.black,
},
]}>
{title} //타이틀은 이 스타일대로
</Text>
<Text
style={[
styles.sectionDescription,
{
color: isDarkMode ? Colors.light : Colors.dark,
},
]}>
{children} //칠드런은 이 스타일대로
</Text>
</View>
);
}
function App(): JSX.Element {
const isDarkMode = useColorScheme() === 'dark';
const backgroundStyle = { //백그라운드 스타일은 이렇게
backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
};
return (
<SafeAreaView style={backgroundStyle}>
<StatusBar
barStyle={isDarkMode ? 'light-content' : 'dark-content'}
backgroundColor={backgroundStyle.backgroundColor}
/>
<ScrollView
contentInsetAdjustmentBehavior="automatic" //애플 엠자탈모같은 부분에서 알아서 safearea잡아주는 역할
style={backgroundStyle}>
<Header/> //위에 리엑트 네이티브 로고 그려진 헤더를 의미
<View
style={{
backgroundColor: isDarkMode ? Colors.black : Colors.white,
}}>
<Section title="Step One">//아까 위에서 설정한 section함수의 title 지정
Edit <Text style={styles.highlight}>App.tsx</Text> to chan this
screen and then come back to see your edits.
</Section>
<Section title="See Your Changes">
<ReloadInstructions />
</Section>
<Section title="Debug">
<DebugInstructions />
</Section>
<Section title="Learn More">
Read the docs to discover what to do next:
</Section>
</View>
<LearnMoreLinks/> //아래 링크들 의미
</ScrollView>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
sectionContainer: {
marginTop: 50, //위 여백
paddingHorizontal: 30,
},
sectionTitle: {
fontSize: 24, //폰트사이즈
fontWeight: '600', //폰트 굵기
},
sectionDescription: {
marginTop: 10,
fontSize: 18,
fontWeight: '400',
},
highlight: {
fontWeight: '700',
},
});
export default App;
728x90
'FRONT > 리액트네이티브' 카테고리의 다른 글
react native typescript에서 navigation 으로 화면 전환 구현하기 (0) | 2023.05.05 |
---|---|
react native 기본 코드 바탕으로 스크롤뷰 초안 만들기 (0) | 2023.05.05 |
아마 개발 1일차.. 실황 정리 (react native accessible / 안드로이드 기기 연결) (0) | 2023.05.02 |
리액트 네이티브 맥 Mac 설치 오류 타파 (23.04.28 기점) (0) | 2023.04.28 |
react native 이미지 가로배열 (0) | 2022.04.17 |