React Nativeは、JavaScriptでiOS/Androidアプリを開発できるフレームワークです。
「とりあえず環境構築はできたけど、次に何をすればいいの?」と悩んでいませんか?
本記事では、React Nativeの基本となる「コンポーネント」「状態管理」「ナビゲーション」について、わかりやすく解説します!
1. React Nativeの基本構成
React Nativeは、Web開発のReactと似た構造を持っています。
主な要素
- コンポーネント:画面を構成する部品(例:ボタン、入力欄など)
- 状態管理:データの管理(例:useState、useContext、Redux)
- ナビゲーション:画面の遷移(例:スタックナビゲーション、タブナビゲーション)
それぞれ、実際のコードを交えながら解説します!
2. React Nativeのコンポーネントの使い方
React Nativeでは、基本的なUIを「コンポーネント」として作成します。
基本のコンポーネント
import React from "react";
import { View, Text, Button, StyleSheet } from "react-native";
export default function App() {
return (
<View style={styles.container}>
<Text style={styles.text}>Hello, React Native!</Text>
<Button title="押してね" onPress={() => alert("ボタンが押されました!")} />
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
alignItems: "center",
backgroundColor: "#f8f9fa",
},
text: {
fontSize: 20,
fontWeight: "bold",
},
});
📌 ポイント
<View>
→ HTMLの<div>
のような役割<Text>
→ HTMLの<p>
のような役割<Button>
→ ボタンの作成(onPress でイベントを設定)
カスタムコンポーネントの作成
コードの再利用性を高めるため、コンポーネントを分割しましょう。
ボタンを別ファイルにする
MyButton.js
(カスタムボタンコンポーネント)
import React from "react";
import { Button } from "react-native";
export default function MyButton({ title, onPress }) {
return <Button title={title} onPress={onPress} />;
}
App.js で使用する
import React from "react";
import { View, Text, StyleSheet } from "react-native";
import MyButton from "./MyButton"; // カスタムボタンをインポート
export default function App() {
return (
<View style={styles.container}>
<Text style={styles.text}>Hello, React Native!</Text>
<MyButton title="押してね" onPress={() => alert("カスタムボタンが押されました!")} />
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
alignItems: "center",
},
text: {
fontSize: 20,
},
});
✅ カスタムコンポーネントを作ると、コードが整理され、再利用しやすくなる!
3. React Nativeの状態管理(useStateの使い方)
アプリ開発では、ボタンを押したときにデータを変更するなど、動的な処理が必要になります。
useStateを使った状態管理
import React, { useState } from "react";
import { View, Text, Button } from "react-native";
export default function App() {
const [count, setCount] = useState(0);
return (
<View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
<Text style={{ fontSize: 24 }}>カウント: {count}</Text>
<Button title="増やす" onPress={() => setCount(count + 1)} />
</View>
);
}
📌 ポイント
useState
を使うことで、画面の状態を管理できるsetCount(count + 1)
で値を更新すると、自動的にUIが更新される
✅ ボタンを押すたびにカウントが増える!
4. React Navigationで画面遷移を実装
アプリには、複数の画面を切り替えるナビゲーション機能が必要です。
React Navigationのインストール
以下のコマンドで、ナビゲーションライブラリをインストールします。
npm install @react-navigation/native
npm install react-native-screens react-native-safe-area-context react-native-gesture-handler react-native-reanimated react-native-vector-icons react-native-bottom-sheet
npm install @react-navigation/stack
スタックナビゲーションの設定
App.js
import React from "react";
import { View, Text, Button } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";
const Stack = createStackNavigator();
function HomeScreen({ navigation }) {
return (
<View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
<Text style={{ fontSize: 24 }}>ホーム画面</Text>
<Button title="詳細へ" onPress={() => navigation.navigate("Detail")} />
</View>
);
}
function DetailScreen() {
return (
<View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
<Text style={{ fontSize: 24 }}>詳細画面</Text>
</View>
);
}
export default function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Detail" component={DetailScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
📌 ポイント
createStackNavigator()
で画面遷移を設定navigation.navigate("Detail")
で詳細画面へ移動
✅ ボタンを押すと、ホーム画面 → 詳細画面に遷移できる!
5. まとめ:React Nativeの基本をマスターしよう!
✅ コンポーネント
<View>
,<Text>
,<Button>
などを使って画面を作成- カスタムコンポーネントを作るとコードが整理される
✅ 状態管理
useState
を使って、画面のデータを管理する
✅ ナビゲーション
react-navigation
を使うと、画面遷移が簡単に実装できる
🚀 これでReact Nativeの基本がマスターできました!
次は、実際に自分のアプリを作ってみましょう! 🎉
コメント