본문 바로가기
React study/React JS로 영화 웹 서비스 만들기

[React] 1-2. React.js로 카운터 앱 만들기 (1)

by 카누가 좋아요 2023. 5. 23.

React JS로 버튼 클릭 횟수를 알려주는 앱 만들기 (harder way)

* React JS 사용 시에는 HTML에 직접적으로 내용을 작성하지 않는다. 대신, Vanilla JS와 React JS를 이용하여 element를 생성한다.

 

* 이번 시간에 배우는 React JS로 element를 생성하는 방식은 실제로 잘 쓰지 않는 방식이다. (React JS를 이해하기 위한 방법으로, 어려운 방법이다.)



1. span 생성 (React로 Element 생성하기)

 

<script> 
  const span = React.createElement("span");
</script>

- 변수명은 꼭 HTML tag명이 아니어도 된다. (원하는 변수명으로 설정 가능하다.)

- 윗줄에서 이미 React를 import했기 때문에 createElement function을 가진 React object에 접근 가능하다.

- createElement 함수의 인자는 우리가 생성하고자 하는 HTML 태그와 똑같은 이름이어야만 한다.

- 이 시점에서는 body가 비어있고 화면에도 아무것도 나타나지 않는다. but console창에 span을 입력하면 object 형태의 결과가 나오는 것으로 보아 span이 생성되었음을 알 수 있다.

 

* React JS와 React DOM

 

// 이것은 React JS로, interactive한 UI를 만들 수 있게 해 주는 엔진이다.
<script src="https://unpkg.com/react@17.0.2/umd/react.production.min.js"></script>    
// 이것은 React-dom으로, React Element를 HTML에 두는 역할을 한다.  
<script src="https://unpkg.com/react-dom@17.0.2/umd/react-dom.production.min.js"></script>



2. span을 페이지에 배치하기 (<body> 안에 Reacte Element 배치하기)

 

<body>
  <div id="root"></div>
</body>
<script>
  // span을 배치할 곳을 가져왔다. (root DOM node)
  const root = document.getElementById("root");   

  // createElement로 span tag 생성
  const span = React.createElement(
    "span",     // 첫번째 인자: HTML tag명
    { id: "sexy-span", style: { color: "red" } },     // 두번째 인자: span의 property들
    "Hello, I'm a span.");     // 3번째 인자: 생성할 태그의 content(children)들

  // ReactDOM에게 span(React Element)을 root 안에 render해달라고 요청한다.     
  ReactDOM.render(span, root);     
</script>

- render의 의미는 React element를 HTML로 만들어 배치한다는 의미이다. 즉, 사용자에게 보여준다는 의미로 해석할 수 있다.

- 위 결과로 HTML의 <body> tag 안에 root DOM node가 생성되었고 그 안에 <span tag>가 생성된 것을 볼 수 있다.

- property로는 className이 될 수도, id가 될 수도, css style 등이 될 수도 있다.



📌Vanilla JS에서와 위에서의 React JS 코드 작성 차이점

Vanilla JS

HTML을 먼저 만들고, 그것을 JS로 가져와서 HTML을 수정하는 식이다.

 

React JS

모든 것이 JS로써 시작하고 그 후에 HTML이 된다.

React JS가 element를 생성한다는 말은 React JS가 필요한 element를 업데이트하여 HTML을 업데이트 할 수 있다는 말이다.

따라서 React JS는 유저에게 보여질 내용을 컨트롤할 수 있다.

 

 

 

오늘의 코드

 

<!--버튼을 몇 번 클릭했는지 세는 어플이다.-->
<!DOCTYPE html>
<html>
  <body>
    <div id="root"></div>
  </body>
  <!--아래 두 줄의 코드는 리액트를 실행시키는 코드이다. 작성하면 console창에 react라고 작성했을 때 결과를 불러올 수 있어야 한다.-->
  <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>
    const root = document.getElementById("root");
    const span = React.createElement(
      "span", 
      { id : "sexy-span", style: { color: "red" } }, 
      "Hello, I'm a span.");
    ReactDOM.render(span, root);
  </script>
</html>

 

 

ReactJS로 영화 웹 서비스 만들기 – 노마드 코더 Nomad Coders

 

ReactJS로 영화 웹 서비스 만들기 – 노마드 코더 Nomad Coders

React for Beginners

nomadcoders.co

 

댓글