๐Ÿ“–[React]props

ํ˜ฑยท2022๋…„ 10์›” 14์ผ

React

๋ชฉ๋ก ๋ณด๊ธฐ
19/28

โœ”๏ธ props: ์†์„ฑ๊ฐ’(properties)

โ˜‘๏ธ Props ๋„˜๊ฒจ ๋ฐ›๊ธฐ

App.js

import "./App.css";
import Hello from "./component/Hello";

function App() {
  return (
    <div className="App">
      <Hello age={10} />
      <Hello age={20} />
      <Hello age={30} />
    </div>
  );
}

export default App;

Hello.js

import { useState } from "react";

export default function Hello(props) {
  const [name, setName] = useState("Mike");

  return (
    <div>
      <h1>state</h1>
      <h2>
        {name}({props.age}์„ธ)
      </h2>
      <button
        onClick={() => {
          setName(name === "Mike" ? "Jane" : "Mike");
        }}
      >
        Change
      </button>
    </div>
  );
}

๋˜๋Š”

import { useState } from "react";

export default function Hello({age}) { //props๋Š” age๋งŒ ์žˆ์Œ
  const [name, setName] = useState("Mike");
  const msg = msg > 19 ? "์„ฑ์ธ ์ž…๋‹ˆ๋‹ค" : "๋ฏธ์„ฑ๋…„์ž ์ž…๋‹ˆ๋‹ค";

  return (
    <div>
      <h1>state</h1>
      <h2>
        {name}({age}) : {msg}
      </h2>
      <button
        onClick={() => {
          setName(name === "Mike" ? "Jane" : "Mike");
        }}
      >
        Change
      </button>
    </div>
  );
}

๊ฒฐ๊ณผ์ฐฝ

age ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด component๋‚ด๋ถ€์—์„œ state๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผ ํ•จ!
๋„˜๊ฒจ ๋ฐ›์€ ๊ฐ’์ด๋ฏ€๋กœ...

โ˜‘๏ธ Props ๋”ฐ๋กœ state์— ์ €์žฅํ•˜๊ธฐ

Hello.js

import { useState } from "react";

export default function Hello(props) {
  const [name, setName] = useState("Mike");
  const [age, setAge] = useState(props.age);

  return (
    <div>
      <h1>state</h1>
      <h2>
        {name}({age}์„ธ)
      </h2>
      <button
        onClick={() => {
          setName(name === "Mike" ? "Jane" : "Mike");
          setAge(age + 1); //๋ฒ„ํŠผ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค age๊ฐ€ 1์”ฉ ์ฆ๊ฐ€ 
        }}
      >
        Change
      </button>
    </div>
  );
}

ํ™”๋ฉด์— ์–ด๋–ค data ๊ฐฑ์‹ ์€ props, state๋กœ ์ฒ˜๋ฆฌ!

โ˜‘๏ธ ํ•œ component์˜ state props๋กœ ๋„˜๊ธฐ๊ธฐ

UserName.js

export default function UserName({ name }) {
  return <p>{name}</p>;
}

Hello.js

import { useState } from "react";
import UserName from "./UserName";

export default function Hello({age}) {
  const [name, setName] = useState("Mike");
 
  return (
    <div>
      <h1>state</h1>
      <h2>
        {name}({age}์„ธ)
      </h2>
    <UserName name={name}/> 
      <button
        onClick={() => {
          setName(name === "Mike" ? "Jane" : "Mike");
        }}
      >
        Change
      </button>
    </div>
  );
}

Hello ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ๋Š” name์€ state
UserName ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ๋Š” props
์ด๋•Œ ๋™์‹œ์— ๋ณ€๊ฒฝ๋จ.

profile
new blog: https://hae0-02ni.tistory.com/

0๊ฐœ์˜ ๋Œ“๊ธ€