본문 바로가기
카테고리 없음

Click event (vanilla vs react)

by 후야- 2024. 2. 4.

✳ 두 방법을 사용해 보고 비교해 보려고 한다.

 

◾ Vanilla js code

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <span>Total Click: 0</span>
    <button id="btn">Click ME</button>
</body>
<script>
    let counter = 0;
    const button = document.querySelector("#btn");
    const span = document.querySelector("span");

    function handleMouseClick() {
        counter = counter + 1;
        span.innerText = `Total Click: ${counter}`;
    }

    button.addEventListener("click", handleMouseClick);
</script>
</html>

 

 

◾ react js code

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div class="root"></div>
  </body>
  <script src="https://unpkg.com/react@17.0.2/umd/react.production.min.js"></script>
  <script src="https://unpkg.com/react-dom@17.0.2/umd/react-dom.production.min.js"></script>
  <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
  <script type="text/babel">
    const root = document.querySelector(".root");
    function App() {
      const [counter, setCounter] = React.useState(0);
      const onClick = () => {
        // setCounter(counter + 1);
        setCounter((current) => current + 1);  // 이 방법이 더 안전함
      };
      return (
        <div>
          <h3>Totla clicks: {counter}</h3>
          <button onClick={onClick}>Click me</button>
        </div>
      );
    }
    ReactDOM.render(<App />, root);
  </script>
</html>

 

 

익숙해서 그런지  뭔가 vanilla 가 더 편한 거 같은데 별로 react 가 와닿지 않는 거 같은 느낌이 든다.