react

일반 html로만 사이트를 만든다면 분명 존재하는 수많은 중복 html 코드들이 존재 할 것입니다.

예를 들자면 header, footer, aside 등등의 공통된 코드들을 수도 없이 늘려본 경험이 다들 있을 거라고 생각이 됩니다.

React는 그런 중복 코드들을 줄이고자 Component로 만들어 버립니다. [코드 재활용] Component 기반의 UI 라이브러리라고 불리기도 합니다.

 

간단한 예시로 다음 코드를 보면 될 것 같습니다.

<!DOCTYPE html>

<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script>
    function plus() {
      const result = document.getElementById("result");
      const current = parseInt(result.innerText, 10);
      result.innerHTML = current + 1;
    }
    function minus() {
      const result = document.getElementById("result");
      const current = parseInt(result.innerText, 10);
      result.innerHTML = current - 1;
    }
  </script>
</head>

<body>
  <p>Simple Counter</p>
  <h2 id="result">0</h2>
  <div>
    <button onclick="minus()">Minus</button>
    <button onclick="plus()">Plus</button>
  </div>
</body>

</html>

Vanilla JavaScript를 쓰셧던 분들이라면 자주 보셧을것 같습니다.

일단 counter 이라는 프로그램을 간단하게 만들어 볼 것인데 간단한 프로그램임에도 난잡한 코드가 된 것을 볼 수 있습니다.

 

다만 코드가 조금 불편한 부분이 있어서.. 코드를 조금 더 정리한다면

<!DOCTYPE html>

<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>

<body>
  <p>Simple Counter</p>
  <h2 id="result">0</h2>
  <div>
    <button onclick="calc('+')">Plus</button>
    <button onclick="calc('-')">Minus</button>
  </div>

  <script>
    function calc(operation) {
      const result = document.getElementById("result");
      const current = parseInt(result.innerText, 10);

      if (operation === '+') { result.innerHTML = current + 1 };
      if (operation === '-') { result.innerHTML = current - 1 };
    }
  </script>
</body>

</html>

이런식으로 코드를 적을수도 있습니다.

코드가 정리 되었음에도 불편한 부분들이 있네요,,

저런 코드가 나중에 50개 100개가 넘어간다면 힘들것 같네요..

 

다음 포스트에서 state에 대해 알아봐영

 

https://coxemonkey.tistory.com/3

 

React - state

전에 봤던 vanilla js 의 counter 프로그램을 React로 만든다고 한다면, App.js import React from "react"; function App() { return ( ); } export default App; 기본적으로 Counter 이라는 Component 를 이용하..

coxemonkey.tistory.com

아직 정리가 덜 된 관계로 차후 본문이 업데이트 될 예정입니다

'FrontEnd > React' 카테고리의 다른 글

React - useEffect  (0) 2022.03.27
React - useRef DOM 제어  (0) 2022.03.25
React & Node.js 연동하기  (0) 2022.03.24
React - Props  (0) 2022.03.23
React - State  (0) 2022.03.18

+ Recent posts