React : state Function

<angeLog/>ยท2024๋…„ 2์›” 18์ผ

REACT

๋ชฉ๋ก ๋ณด๊ธฐ
4/25
post-thumbnail

๐Ÿ’ก๋…ธ๋งˆ๋“œ์ฝ”๋” ๋‹ˆ๊ผฌ์Œค์˜ ๊ฐ•์˜๋ฅผ ๋ณด๋ฉฐ ๊ณต๋ถ€ํ•˜๋Š” ์‹œ๋ฆฌ์ฆˆ์ž…๋‹ˆ๋‹ค.

2ways state Function

state๋ฅผ ๊ด€๋ฆฌ(upDate)ํ•˜๋Š” setState ํ•จ์ˆ˜๋Š” ์ง์ ‘์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ  ๋‘ ๊ฐ€์ง€๊ฐ€ ๋” ์žˆ๋‹ค.

1.setCounter ์ด์ „ state๋ฅผ ์ด์šฉํ•ด current state ๊ณ„์‚ฐํ•˜๊ธฐ

    const root = document.getElementById("root");
    const App = () => {
      const [counter, setCounter] = React.useState(0);
      const onClick = () => {
        setCounter(counter + 1);
      };
      return (
        <div>
          <h3>Total clicks: {counter}</h3>
          <button onClick={onClick}>Click me</button>
        </div>
      );
    };
    ReactDOM.render(<App />, root);

์ง€๊ธˆ๊นŒ์ง€ ์‚ฌ์šฉํ–ˆ๋˜ ๋ฐฉ์‹์˜ ํ•จ์ˆ˜์ด๋‹ค. ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด state์ธ counter๊ฐ€ ์ƒ๊ฐ์ง€๋„ ๋ชปํ•œ ๋‹ค๋ฅธ ๊ณณ์—์„œ ๋ณ€๊ฒฝ๋˜์–ด ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•œ ๊ฐ’์œผ๋กœ ์•„๋‹ˆ๊ฒŒ ๋  ์ˆ˜ ์žˆ๋‹ค. ์ผ์ข…์˜ ๋ฒ„๊ทธ์ด๋ฉฐ ํ”„๋กœ์ ํŠธ ๋„์ค‘์— ๋ฐœ์ƒ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์œ„ํ—˜์„ฑ์ด ์กด์žฌํ•œ๋‹ค.

2.setCounter ํ•จ์ˆ˜ํ™”

    const root = document.getElementById("root");
    const App = () => {
      const [counter, setCounter] = React.useState(0);
      const onClick = () => {
        setCounter((current) => current + 1);
        //setCounter((ํ˜„์žฌ๊ฐ’) => ํ˜„์žฌ๊ฐ’ + 1);
      };
      return (
        <div>
          <h3>Total clicks: {counter}</h3>
          <button onClick={onClick}>Click me</button>
        </div>
      );
    };
    ReactDOM.render(<App />, root);

setCounter๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์ฒซ๋ฒˆ์งธ argument(์ „๋‹ฌ์ธ์ž)๋Š” current(ํ˜„์žฌ๊ฐ’)์ด ๋˜๋ฉฐ, ์ด ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ ํ›„ return๊ฐ’์ด ์ƒˆ๋กœ์šด state๊ฐ€ ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด ๊ฒฝ์šฐ์˜ return๊ฐ’์€ current+ 1์ด ๋œ๋‹ค.
์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด state๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์ข€๋” ์•ˆ์ „ํ•œ ๋ฐฉ์‹์ธ๋ฐ current๊ฐ€ ๋ฌด์กฐ๊ฑด ํ˜„์žฌ๊ฐ’์ด๋ผ๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ฆ‰, ํ˜„์žฌ state๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ state๋ฅผ upDateํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

profile
์ผ๋‹จ ํ•ด๋ณผ๊ฒŒ์š”!โœ๐Ÿป

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