見出し画像

【React】10分内に「ざっくり」わかる!Reactの必須技術5選


はじめに


ReactをベースにしたTypeScriptは、静的型言語を利用して開発者に強力な開発体験を提供します。このブログでは、TypeScriptを使用してReactでのコンポーネント・Props、イベント処理・スタイル、useState、useEffect、useContextの基本的な概念を簡単なコード例と共に説明します。


コンポーネント・Propsの使用方法


TypeScriptでのコンポーネントの作成は、通常、関数型コンポーネントと一緒にプロップスの型を定義するためにインターフェース(Interface)を使用します。

import React from 'react';

interface MyComponentProps {
  name: string;
}

const MyComponent: React.FC<MyComponentProps> = ({ name }) => {
  return <div>Hello, {name}!</div>;
};

export default MyComponent;

上記のコードでは、MyComponentMyComponentPropsというインターフェースを使用してプロップスの型を定義し、その型を使用して関数型コンポーネントを作成しています。


イベントとスタイルの使用方法


イベント処理とスタイルの適用も、TypeScriptで基本的に使用可能です。

import React, { useState } from 'react';

interface EventAndStyleProps {
  initialColor: string;
}

const EventAndStyleComponent: React.FC<EventAndStyleProps> = ({ initialColor }) => {
  const [color, setColor] = useState<string>(initialColor);

  const handleClick = () => {
    setColor(color === 'blue' ? 'red' : 'blue');
  };

  const textStyle: React.CSSProperties = {
    color: color,
    cursor: 'pointer',
  };

  return (
    <div style={textStyle} onClick={handleClick}>
      Click me to change color!
    </div>
  );
};

export default EventAndStyleComponent;

上記のコードでは、EventAndStyleComponentでプロップスの型を定義し、スタイルはReact.CSSPropertiesを使用して明示的に指定しています。


useStateの使用方法


useStateを使用する際も、型を明示して状態を管理することができます。

import React, { useState } from 'react';

const StateComponent: React.FC = () => {
  const [count, setCount] = useState<number>(0);

  const increment = () => {
    setCount(count + 1);
  };

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={increment}>Increment</button>
    </div>
  );
};

export default StateComponent;

上記のコードでは、countの状態の型をnumberとして指定しています。


useEffectの使用方法


useEffectを使用する際も、型を指定して副作用を扱うことができます。

import React, { useEffect, useState } from 'react';

const EffectComponent: React.FC = () => {
  const [data, setData] = useState<string[]>([]);

  useEffect(() => {
    // データのロードなどの作業を実行
    fetchData();
  }, []); // 空の配列は初回レンダリング時のみ実行

  const fetchData = async () => {
    // 非同期の作業を実行してデータを設定
    const result = await fetchDataFromAPI();
    setData(result);
  };

  return <div>Data: {data.join(', ')}</div>;
};

export default EffectComponent;

上記のコードでは、EffectComponentdataの状態の型をstring[]として指定しています。


useContextの使用方法


useContextを使用してグローバルな状態を共有する際も、型を指定して安全に使用できます。

import React, { createContext, useContext } from 'react';

// Contextの作成
interface MyContextProps {
  value: string;
}

const MyContext = createContext<MyContextProps | undefined>(undefined);

// Providerの提供
const App: React.FC = () => {
  return (
    <MyContext.Provider value={{ value: 'Hello from Context!' }}>
      <ChildComponent />
    </MyContext.Provider>
  );
};

// useContextで値を使用
const ChildComponent: React.FC = () => {
  const contextValue = useContext(MyContext);

  if (!contextValue) {
    return null;
  }

  return <div>{contextValue.value}</div>;
};

export default App;

上記のコードでは、MyContextを作成する際にインターフェースを使用して値を明示的に指定し、useContextを使用する際にその型を指定しています。


最後に


このブログでは、TypeScriptを基にしたReactでの基本的な概念を簡単なコード例と共に紹介しました。関数型コンポーネント・Props、イベント処理・スタイル、useState、useEffect、useContextの主要なトピックを触れ、TypeScriptを使用することでより安全にコードを記述できるようになります。Happy coding!


向上心のエンジニア
ソンさん


この記事が気に入ったらサポートをしてみませんか?