0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

React(コンポーネントの基本) とらゼミ04 メモ

Last updated at Posted at 2021-05-22

コンポーネントとは

とらゼミ01にて記述。

何故コンポーネントを使うのか。

  • 再利用するため。
  • 分割統治するため、コンポーネントのツリー構造的にも細かく分かれている。
  • 変更に強くするため。

コンポーネントの種類

Class component

クラスによって定義されたコンポーネント。
例)

import React from 'react';

class Article extends React.Component {
    // コンストラクタ
    constructor(props) {
        super(props)
    }

    //renderメソッド
    render() {
        return(
            <div>
                <h2>{this.props.title}</h2>
            </div>
        )
    }
}

特徴

  • React.Componentを継承。
  • ライフサイクルやstateを持つ。(ライフサイクルはとらゼミ05を参照)
  • propsにはthisが必要。
  • 2020年4月現在あまり推奨されていない。

functional component

関数型で定義されたコンポーネント。
例)

import React from 'react';

const Article = (props) => {
    return (
        <div>
             <h2>{props.title}</h2>
        </div>
    )
}

特徴

  • ES6のアロー関数で記述。
  • stateを持たない(stateless)。
  • propsを引数に受け取る。
  • JSXをreturnする。

React.Fragment

コンポーネント内でコンポーネントを使う際、必ずタグで囲む必要がある。

lass Blog extends React.Component {
    //  コンストラクタ
    constructor(props){
        super(props); //スーパークラスのコンストラクタ。
    }
    // renderメソッド
    render(){
        return(
            <div>
                <Article />
            </div>
        )
    }
}

divで囲んんでもいいがweb画面でElement構造を見てみると、かなり汚くなる。

49df3966-ad06-8922-1734-64a26087ce97.png

こう言う時にコンポーネントをReact.Fragmentタグで囲むと。

95c1ae90-f4c7-5c4f-589a-bddd28e93a9e.png

divタグが無くなり、かなりスッキリする。
ただしdivが要らない訳じゃ無いので、場合によって使い分ける必要がある。

propsでデータを受け渡す。(引数名はprops固定ではない)

  • 子データ、 コンポーネントを使われる側、propsを介してデータを受け取る。
mport React from 'react'

const Article = (props) => {
    return (
        <div>
            <h2>{props.title}</h2>
        </div>
    )
}

export default Article;
  • 親コンポーネント、コンポーネントを使う側、propsに名前と値を送る。
import React from 'react'
import Article from './Ariticle.jsx'

const Blog = () => {
    return(
        <React.Fragment>
            <Article title = {"React"}/>
        </React.Fragment>
    )
}

export default Blog;

受け渡せるデータ型

{}内に書けば文字列、数値、真偽値、配列、オブジェクトなんでも渡せる。
文字列は「{ }」 無しでも大丈夫。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?