React Native μ»΄ν¬λνΈλ? / ν΄λμ€ν μ»΄ν¬λνΈμ ν¨μν μ»΄ν¬λνΈμ νΉμ§
μ»΄ν¬λνΈλ?
μ»΄ν¬λνΈλ UIλ₯Ό λ 립μ μ΄κ³ μ¬μ¬μ© κ°λ₯νλλ‘ κΈ°λ₯ λ¨μλ³λ‘ λλ λμ λ¨μμ΄λ€.
νλ©΄μ κ΅¬μ± μμλ€μ μ¬λ¬κ°μ§ μ»΄ν¬λνΈλ€λ‘ μ΄λ£¨μ΄μ Έ μλ€. λν, λΌμ΄ν μ¬μ΄ν΄ APIλ₯Ό ν΅ν΄ μ»΄ν¬λνΈκ° νλ©΄μ λνλ λ, μ¬λΌμ§ λ, λ³ν λ μμ λ€μ μνν μλ μλ€.
μ£Όμ μ»΄ν¬λνΈ
SafeAreaView
|
μλ¨μ μν λ°μ νλ¨μ ν λ²νΌ μμμ μ μΈν μμμ μ½ν
μΈ λ₯Ό νμν λ μ¬μ©
|
View
|
μνλ°μ ν λ²νΌ μμκΉμ§ μ½ν
μΈ νμ
|
StyleSheet
|
리μ‘νΈ λ€μ΄ν°λΈ μ»΄ν¬λνΈμ μ€νμΌ μ μ©ν λ μ¬μ©
리μ‘νΈ λ€μ΄ν°λΈμμ μ€νμΌμ μ μ©νκΈ° μν΄μλ μΈλΌμΈ μ€νμΌκ³Ό StyleSheetλ₯Ό μ¬μ©νλ λ°©λ²μ΄ μμ
|
ScrollView
|
νλ©΄ μ€ν¬λ‘€μ΄ κ°λ₯ν μ»΄ν¬λνΈ
νλ©΄ μ€ν¬λ‘€μ΄ κ°λ₯ν μ»΄ν¬λνΈλ‘λ FlatList, ScrollView λ±μ μ 곡νκ³ μμ
|
Text
|
ν
μ€νΈλ₯Ό μ
λ ₯ν μ μλ μ»΄ν¬λνΈ
|
Button
|
λ²νΌμ μ¬μ©νκΈ° μν μ»΄ν¬λνΈ
|
ν΄λμ€ν μ»΄ν¬λνΈμ ν¨μν μ»΄ν¬λνΈμ νΉμ§
ν΄λμ€ν μ»΄ν¬λνΈ
import React, {Component} from "react";
import {View, Text} from 'react-native';
class App extends Component {
const name = ‘리μ‘νΈ’;
render(){
return(
<View>
<Text> {name} </Text>
</VIew>
);
} }
export default App;
- class ν€μλ νμ
- Componentλ‘ μμμ λ°μμΌνλ€.
- render() λ©μλκ° λ°λμ μμ΄μΌνλ€.
- state, lifeCycle κ΄λ ¨ κΈ°λ₯μ¬μ© κ°λ₯νλ€.
- λ©λͺ¨λ¦¬ μμμ ν¨μν μ»΄ν¬λνΈλ³΄λ€ μ‘°κΈ λ μ¬μ©νλ€.
ν¨μν μ»΄ν¬λνΈ
import React from "react";
import {View, Text} from 'react-native';
const App = () => {
const name = ‘리μ‘νΈ’;
return(
<View>
<Text> {name} </Text>
</VIew>
}
export default App;
- state, lifeCycle κ΄λ ¨ κΈ°λ₯ μ¬μ© λΆκ°λ₯ [Hookμ ν΅ν΄ ν΄κ²° λ¨]
- λ©λͺ¨λ¦¬ μμμ ν΄λμ€ν μ»΄ν¬λνΈλ³΄λ€ λ μ¬μ©νλ€.
- μ»΄ν¬λνΈ μ μΈμ΄ νΈνλ€.
ν΄λμ€ν μ»΄ν¬λνΈμ ν¨μν μ»΄ν¬λνΈ λΉκ΅
μ μ½λλ ν΄λμ€ν μ»΄ν¬λνΈμ ν¨μν μ»΄ν¬λνΈμ μ€νκ²°κ³Όκ° λμΌνλ€.
ν¨μν μ»΄ν¬λνΈλ ν΄λμ€ν μ»΄ν¬λνΈλ³΄λ€ μ μΈνκΈ°κ° μ’ λ νΈνκ³ , λ©λͺ¨λ¦¬ μμμ λ μ¬μ©νλ€λ μ₯μ μ΄ μλ€. κ³Όκ±°μλ ν¨μν μ»΄ν¬λνΈμμ stateμ λΌμ΄νμ¬μ΄ν΄ APIλ₯Ό μ¬μ©ν μ μλ€λ λ¨μ μ΄ μμλλ°, μ΄λ¬ν λ¨μ μ μμ μΈκΈν κ²μ²λΌ 리μ‘νΈ ν μ΄ λμ λλ©΄μ ν΄κ²°λμλ€.
κ·Έλ¦¬κ³ ν΄λμ€ μ»΄ν¬λνΈλ render ν¨μκ° κΌ μμ΄μΌ νκ³ , κ·Έ μμμ λ³΄μ¬ μ£Όμ΄μΌ ν JSXλ₯Ό λ°νν΄μΌ(return) ν©λλ€. μμ class ν€μλλ₯Ό μ κ³ Componentλ₯Ό μμ λ°μμΌνλ€.