Reactコンポーネントとは
この記事の目的
公式チュートリアルで三目並べを作ってもらうのが一番理解できるが、その中でも特に日本語で説明しておいたほうがよさそうなポイントを纏めている。
本資料を読んだ後に、チュートリアルを両方やってもらったほうがより理解が深まる。
関連するQiita記事
参考資料
ドキュメント
チュートリアル
※余力があれば、以下のチュートリアルも行うことを推奨する
Getting Started with React - An Overview and Walkthrough Tutorial
Reactコンポーネントとは
ReactはUIを「コンポーネント」という部品単位で構築する。
1つのコンポーネントを描画する例
これをReactコンポーネントで定義すると、以下のようになる。(スタイルは省略している)
class Square extends React.Component {
render() {
return (
<button className="square"></button>
);
}
}
SquareというReactコンポーネントを定義しており、render関数で描画内容をreturnしている。
このときというHTMLタグをreturnしているように見えるが、これはJSX記法であり、以下のようにJSXを使わずにReact.createElementで記述した場合と等価である。
class Square extends React.Component {
render() {
return (
React.createElement(
'button',
{className: 'square'}
);
);
}
}
複数のコンポーネントを描画する例
上記のSquareを更に3×3のマス目でボタンを並べて描画する場合を考える。
これをReactコンポーネントで定義すると、以下のようになる。(スタイルは省略している)
class Square extends React.Component {
render() {
return (
<button className="square"></button>
);
}
}
class Board extends React.Component {
renderSquare(i) {
return <Square />;
}
render() {
return (
<div>
<div className="board-row">
{this.renderSquare(0)}
{this.renderSquare(1)}
{this.renderSquare(2)}
</div>
<div className="board-row">
{this.renderSquare(3)}
{this.renderSquare(4)}
{this.renderSquare(5)}
</div>
<div className="board-row">
{this.renderSquare(6)}
{this.renderSquare(7)}
{this.renderSquare(8)}
</div>
</div>
);
}
}
新たに加わったBoardというReactコンポーネントは、Squareコンポーネントを9つ組み合わせて3×3のマス目を実現している。
Author And Source
この問題について(Reactコンポーネントとは), 我々は、より多くの情報をここで見つけました https://qiita.com/s_harada/items/cb6b3f0d323a40963f8c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .