ReactでWebアプリ開発入門Reactとは?

WordPress

Reactは、コンポーネントベースのUIを構築するためのJavaScriptライブラリです。コンポーネントとは、UIを独立した部品に分割した再利用可能な単位のことです。HTMLとJavaScriptが密に統合されているため、ロジックとUIが一体化しており保守性が高くなります。

環境構築

Reactを使うための開発環境を構築しましょう。ReactのCLIツールであるCreate React Appを利用すると手軽に開発環境を作れます。

npx create-react-app my-react-app
cd my-react-app
npm start

以上のコマンドで、http://localhost:3000/にReactのデフォルトページが表示されます。

JSX

ReactではJSXという構文を使ってUIを記述します。JSXはHTMLのタグ記法とJavaScriptのコードを混在させた構文です。

import React from 'react';

const App = () => {
return (
<div>
<h1>Hello React!</h1>
<p>This is a sample app.</p>
</div>
);
}

export default App;

JSXの構文は、XMLやHTMLに似ていますが、実際にはJavaScriptの構文糖衣構文です。

コンポーネント

Reactではコンポーネントを作成し、それらを組み合わせてUIを構築していきます。コンポーネントには関数コンポーネントとクラスコンポーネントの2種類があります。

関数コンポーネント

import React from 'react';

const MyComponent = (props) => {
return <div>Hello, {props.name}</div>;
}

export default function App() {
return (
<div>
<MyComponent name="React" />
</div>
);
}

クラスコンポーネント

import React, { Component } from 'react';

class MyComponent extends Component {
render() {
return <div>Hello, {this.props.name}</div>;
}
}

export default class App extends Component {
render() {
return (
<div>
<MyComponent name="React" />
</div>
);
}
}

関数コンポーネントはシンプルで書きやすく、パフォーマンス面でも優れています。一方でクラスコンポーネントはライフサイクルメソッドを使えるなどの利点があります。

State and Props

コンポーネントの状態を管理するにはStateとPropsを使います。Propsは親から子へデータを渡すための外部から設定される値です。一方Stateはコンポーネント自身の内部で管理される値で、setStateメソッドを使って更新できます。

import React, { Component } from 'react';

export default class App extends Component {
constructor(props) {
super(props);
this.state = { count: 0 };
}

increment = () => {
this.setState({ count: this.state.count + 1 });
}

decrement = () => {
this.setState({ count: this.state.count - 1 });
}

render() {
return (
<div>
<p>Count: {this.state.count}</p>
<button onClick={this.increment}>+</button>
<button onClick={this.decrement}>-</button>
</div>
);
}
}

上記の例では、countというStateを定義し、ボタンクリックでインクリメント/デクリメントする簡単なカウンターアプリを実装しています。

以上がReactの基本的な使い方の解説になります。本記事を通して、Reactの環境構築、JSX、コンポーネント、StateとPropsの基礎を理解できたと思います。次はReactフック、ライフサイクルメソッド、リストのレンダリングなどを学んでいき、より高度なアプリケーション開発に備えましょう。

コメント

タイトルとURLをコピーしました