React Nativeの文法は、Reactの文法と非常に似ていますが、React Native特有の構文やルールがあります。以下に、基本的なReact Nativeの文法と特徴を紹介します。

React Nativeの文法は、Reactの文法と非常に似ていますが、React Native特有の構文やルールがあります。以下に、基本的なReact Nativeの文法と特徴を紹介します。

1. 基本構文

React NativeのコードはJavaScript(またはTypeScript)で書かれています。

import React from ‘react’;

import { Text, View } from ‘react-native’;

const App = () => {

  return (

    <View>

      <Text>Hello, React Native!</Text>

    </View>

  );

};

export default App;

  • View: React Nativeで使うコンテナ。HTMLdivに似ています。
  • Text: テキストを表示するためのコンポーネント。HTML<p><span>に相当します。

2. コンポーネント

React Nativeでは2種類のコンポーネントが作成できます。

関数コンポーネント

軽量で、React Hooksを使うことができます。

const MyComponent = () => {

  return (

    <View>

      <Text>これは関数コンポーネントです。</Text>

    </View>

  );

};

クラスコンポーネント

React Hooksを使う前からの標準的な書き方。

import React, { Component } from ‘react’;

import { View, Text } from ‘react-native’;

class MyComponent extends Component {

  render() {

    return (

      <View>

        <Text>これはクラスコンポーネントです。</Text>

      </View>

    );

  }

}

3. スタイル

React Nativeでは、スタイルはオブジェクト形式で記述します。

import { StyleSheet } from ‘react-native’;

const styles = StyleSheet.create({

  container: {

    flex: 1,

    justifyContent: ‘center’,

    alignItems: ‘center’,

    backgroundColor: ‘#f5f5f5’,

  },

  text: {

    fontSize: 20,

    color: ‘#333’,

  },

});

スタイルの適用方法

<View style={styles.container}>

  <Text style={styles.text}>スタイルが適用されました。</Text>

</View>

  • flex: 1: コンテナが画面全体を占める。
  • justifyContent: 子要素の縦方向の配置を制御。
  • alignItems: 子要素の横方向の配置を制御。

4. 状態管理 (State)

React NativeuseStateを使う例:

import React, { useState } from ‘react’;

import { Text, Button, View } from ‘react-native’;

const CounterApp = () => {

  const [count, setCount] = useState(0);

  return (

    <View style={{ padding: 20 }}>

      <Text>カウント: {count}</Text>

      <Button title=”増やす” onPress={() => setCount(count + 1)} />

    </View>

  );

};

export default CounterApp;

5. イベント処理

React Nativeのイベント処理は、Reactに似ていますが、React Native特有のイベントハンドラもあります。

import React from ‘react’;

import { Button, Alert, View } from ‘react-native’;

const App = () => {

  const showAlert = () => {

    Alert.alert(‘ボタンが押されました!‘);

  };

  return (

    <View>

      <Button title=”押してね” onPress={showAlert} />

    </View>

  );

};

export default App;

  • onPress: ボタンやTouchable要素のタップイベント。

6. ナビゲーション

React Nativeではreact-navigationを使って画面遷移を実現します。

bash

npm install @react-navigation/native react-native-screens react-native-safe-area-context react-native-gesture-handler react-native-reanimated

サンプルコード

import React from ‘react’;

import { NavigationContainer } from ‘@react-navigation/native’;

import { createStackNavigator } from ‘@react-navigation/stack’;

import { Text, View, Button } from ‘react-native’;

const Stack = createStackNavigator();

const HomeScreen = ({ navigation }) => (

  <View>

    <Text>ホーム画面</Text>

    <Button title=”次へ” onPress={() => navigation.navigate(‘Details’)} />

  </View>

);

const DetailsScreen = () => (

  <View>

    <Text>詳細画面</Text>

  </View>

);

const App = () => {

  return (

    <NavigationContainer>

      <Stack.Navigator>

        <Stack.Screen name=”Home” component={HomeScreen} />

        <Stack.Screen name=”Details” component={DetailsScreen} />

      </Stack.Navigator>

    </NavigationContainer>

  );

};

export default App;

7. デバイスAPIの利用

React NativeはデバイスAPIにもアクセスできます(カメラ、位置情報、センサーなど)。

: 位置情報取得

bash

npm install @react-native-community/geolocation

import React, { useEffect } from ‘react’;

import { Text, View } from ‘react-native’;

import Geolocation from ‘@react-native-community/geolocation’;

const App = () => {

  useEffect(() => {

    Geolocation.getCurrentPosition(

      position => {

        console.log(position.coords);

      },

      error => {

        console.log(error);

      },

    );

  }, []);

  return (

    <View>

      <Text>位置情報を取得中…</Text>

    </View>

  );

};

export default App;

8. サードパーティライブラリ

React Nativeでは、サードパーティライブラリを利用することが一般的です。例えば:

  • Axios: API通信
  • React Native Vector Icons: アイコン
  • React Native Maps: 地図
  • Redux: 状態管理

まとめ

React NativeReactを基盤にしており、ViewTextのようなモバイル特有のコンポーネントを使うのが特徴です。また、デバイスAPIやナビゲーションライブラリを活用して、ネイティブアプリらしい機能を追加することができます。質問があればさらに詳しく説明します!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です