React Native ๊ธฐ๋ณธ ์ฝ๋(Hellow World ์คํ ํ๋ฉด ์ถ๋ ฅํ๊ธฐ)
// index.js
import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';
AppRegistry.registerComponent(appName, () => App);
index.js์์ AppRegistry. registerComponent ์ฑ๋ค์์ ์ฑ ํ์ผ์ ๋ฑ๋กํด์ ์ฒ์ ์คํ๋๋ ์ง์ ์ ์ ์ค์ ํ๋ค.
App.jsํ์ผ์ ์ง์ ํ๊ฒ ๋๋ฉด exportํ App ์ปดํฌ๋ํธ๊ฐ ์คํ๋๋ค.
// App.js
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
export default class App extends React.Component {
render() {
return (
<View style={styles.container}>
<Text>Hello World </Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
React๋ฅผ importํ๋ ์ด์
import React from ‘react’;
js, jsxํ์ผ ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ์ด๊ธฐ ๋๋ฌธ์ ํ์๋ก ์ ๋ ฅํด์ค๋ค.
react-native๋ฅผ importํ๋ ์ด์
import {StyleSheet, Text} from ‘react-native’;
react native์ UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
export default์ Component๋ฅผ ์์ํ๋ ์ด์
export default class App extends React.Component
export๋ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์๋ฏธํ๋ค. ๋ค๋ฅธ ํ์ผ์์ ํ์ฌ ํ์ผ์ ์ปดํฌ๋ํธ๋ฅผ import(๋ถ๋ฌ์ค๊ธฐ)ํ๊ธฐ ์ํด์๋ ํด๋น ์ปดํฌ๋ํธ๋ฅผ exportํด์ฃผ์ด์ผ ํ๋ค.
โ
- export default vs export name
export default: ํ ๋ชจ๋๋น export default๋ ํ ๊ฐ๋ง ๋ฃ์ด์ค๋ค.
export name: ํ๊ฐ๋ ์ฌ๋ฌ๊ฐ๋ ์๊ด์๋ค.JSX ๋ฌธ๋ฒ์ ํน์ง
โ
Component๋ฅผ ์์ํ๋ ์ด์ ๋ ๋ฆฌ์กํธ์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค. Componentํด๋์ค ์์๋ ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ state์ JSX๋ฅผ ๋ฐํํ๋ render() ํจ์ ๋ฑ์ด ์์ด ํจ์๋ฅผ ์ง์ ์ ์ํ์ง ์์์ง๋ง ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ฅผ ์์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
UI ์ปดํฌ๋ํธ์ renderํจ์ ๊ทธ๋ฆฌ๊ณ StyleSheet์ปดํฌ๋ํธ
class ๋ด๋ถ๋ฅผ ๋ณด๋ฉด View์ Text๋ผ๋ UI component๋ฅผ ์ฌ์ฉํ๋ค.
View๋ก Text๋ฅผ ๊ฐ์ธ๋ ์ด๋ฐ ํํ๋ JSX ํํ์์ค ํ๋์ด๋ค.
โ
render ํจ์๋ UI์ ํ์ํ DOM tree๋ฅผ ๋ฐํํ๋ค. ์ปดํฌ๋ํธ ๋ด๋ถ์ ๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค์ด ๋ค์ด๊ฐ ์ ์๊ณ ํด๋์คํ ์ปดํฌ๋ํธ์์๋ ๋ฌด์กฐ๊ฑด render๋ก ๊ฐ์ธ์ฃผ์ด์ผํ๋ค.
โ
StyleSheet ์ปดํฌ๋ํธ๋ฅผ ์ด์ฉํด์ ์คํ์ผ ์ง์ ํ๋ค. ์คํ์ผ์ render์์ ๋จ์ด๋จ๋ ค ๋์ผ๋ฉด ์ฝ๋๋ฅผ ์ข ๋ ์ฝ๊ฒ ์ดํดํ ์ ์๋ค. Create๋ฅผ ํตํด container๋ผ๋ ID๋ฅผ ๋ง๋ค์ด์ ์ฐธ์กฐํ ์ ์๋ค.
โ
'๐ Development > React Native' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React Native ์ปดํฌ๋ํธ๋? / ํด๋์คํ ์ปดํฌ๋ํธ์ ํจ์ํ ์ปดํฌ๋ํธ์ ํน์ง (0) | 2023.06.15 |
---|---|
[React Native] JSX ๋? / JSX ๋ฌธ๋ฒ (0) | 2023.06.15 |
React Native์ ์๋ ์๋ฆฌ (0) | 2023.06.15 |
React Native์ ํน์ง ๋ฐ ์ฅ์ / ํ์ฉ (0) | 2023.06.15 |
React Native๋? React Native์ React ์ฐจ์ด, ๋ฆฌ์กํธ ํ์ ๋ฐฐ๊ฒฝ (0) | 2023.06.15 |