Haramaki0326 / StudyToDo

2021年にチャレンジ、やりたいことリスト
0 stars 0 forks source link

Reactの基本 #75

Open Haramaki0326 opened 2 years ago

Haramaki0326 commented 2 years ago

JSX

全般

return

const App = () => {
  return (
    <div>
      <h1>こんにちは!</h1>
      <p>おげんきですか</p>
    </div>
  );
}

イベント

スタイル

const App = () => {

  const contentStyle = {
    color: 'blue',
    fontSize: '20px'
  }

  return (
    <>
      <h1 style={{ color: 'red' }}>こんにちは!</h1>
      <p style={contentStyle}>おげんきですか</p>
      <button onClick={onClickButton}> ボタン </button>
    </>
  );
}
Haramaki0326 commented 2 years ago

Props

基本

App.jsx (Propsを渡す側)

import {} from "./components/ColoredMessage";

export const App = () => {

  return (
    <>
      <h1 style={{ color: 'red' }}>こんにちは!</h1>
      <ColoredMessage color='blue' message='お元気ですか?' />
      <button onClick={onClickButton}> ボタン </button>
    </>
  );
};

ColoredMessage.jsx (Propsを渡される側)

export const ColoredMessage = (props) => {

  const contentStyle = {
    color: props.color,
    fontSize: '20px'
  }

  return (
    <p style={contentStyle}>{props.message}</p>
  );
};

children

App.jsx (Propsを渡す側)

import {} from "./components/ColoredMessage";

export const App = () => {

  return (
    <>
      <h1 style={{ color: 'red' }}>こんにちは!</h1>
      <ColoredMessage color='blue'>お元気ですか?</ ColoredMessage>
      <button onClick={onClickButton}> ボタン </button>
    </>
  );
};

ColoredMessage.jsx (Propsを渡される側)

export const ColoredMessage = (props) => {

  const contentStyle = {
    color: props.color,
    fontSize: '20px'
  }

  return (
    <p style={contentStyle}>{props.children}</p>
  );
};

分割代入(destructure)

Haramaki0326 commented 2 years ago

exportの種類

normal export

export側

export const SomeComponent = () => {};

import側

import { SomeComponent } from './SomeComponent';

default export

export側

const SomeComponent = () => {};
export default SomeComponent;

import側

import SomeComponent from './SomeComponent';