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 1 year has passed since last update.

React コンポーネント化

Posted at

Reactのコンポーネント化と使用方法

コンポーネント名の先頭は必ず大文字で始める
コンポーネントに値を渡すには、propsか引数で渡す必要がある

props

App.jsに、InputTodo.jsxコンポーネントを配置する。
コンポーネントに値を渡すにはprops(プロパティの意らしい)を使用する

App.js
import React, { useState } from "react";
//コンポーネントのインポート
import { InputTodo } from "./components/InputTodo";

// 名前付きexport
export const App = () => {
  //Hooks 
  const [todoText, setTodoText] = useState("");

  //インプットエリアに入力した際、入力をtodoTextで受け取る
  const onChangeTodoText = (event) => {
    setTodoText(event.target.value);
  };

  const onClickAdd = () => {
    //クリック時の処理  
  };
  return (
    <>
      //コンポーネント
      <InputTodo
    //propsへ値を渡す
        todoText={todoText}
        onClick={onClickAdd}
        onChange={onChangeTodoText}
      />
    </>
  );
};

コンポーネント

InputTodo.jsx
//関数のエクスポート
export const InputTodo = (props) => {
  return (
    <div style={style}>
      <input
        // 渡されたpropsから値を取り出す
        value={props.todoText}
        onChange={props.onChange}
      />
      <button onClick={props.onClick}>
        追加
      </button>
    </div>
  );
};

分割代入

props.プロパティ名という書き方を、分割代入を使用して名前だけで扱えるようにする

InputTodo.jsx
export const InputTodo = (props) => {
  const { todoText } = props;
  return (
    <div>
      <input
        value={todoText} //props.todoText → todoText
      />
    </div>
  );
};

引数

終了タグを作成し、間に引数として値を渡すことができる。
その場合、コンポーネント側ではprops.childrenとして受け取る

App.js
  return (
    <>
      //コンポーネント
      <InputTodo
    //引数へ値を渡す
      >テスト</InputTodo>
    </>
  );

InputTodo.jsx
export const InputTodo = (props) => {
  return (
    <div style={style}>
      <input
        //”テスト”が渡される
        value={props.children}
      />
    </div>
  );
};
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?