본문 바로가기
개발로그/React

소플의 처음 만난 리액트_실습2

by 쩜징 2023. 7. 11.

소플의 처음 만난 리액트_실습2


엘리먼트

리액트 앱의 가장 작은 빌딩 블록들

화면에 나타나는 내용을 기술하는 자바스크립트 객체

리액트 엘리먼트는 DOM 엘리먼트의 가상 표현

 

엘리먼트의 생김새

자바스크립트 객체 형태로 존재

컴포넌트 유형과 속성 및 내부의 모든 자식에 대한 정보를 포함하고 있는 일반적인 자바스크립트 객체

 

엘리먼트의 특징

불변성을 갖고 있음

엘리먼트 생성 후에는 자식이나 속성을 바꿀 수 없음

 

렌더링 ReactDOM의 render()라는 함수를 사용

VirtualDOM에서 실제 DOM으로 이동하는 과정

 

 렌더링 된 엘리먼트를 업데이트 하려면 새로운 엘리먼트를 생성해서 업데이트 해야 한다!!! 

 

시계 만들기 실습!!

//Clock.jsx

import React from "react";

function Clock(props) {
    return (
        <div>
            <h1>안녕, 리액트</h1>
            <h2>현재 시간 : {new Date().toLocaleTimeString()}</h2>
        </div>
    );
}
export default Clock;
//index.js

import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import Clock from "./chapter_04/Clock";
import reportWebVitals from "./reportWebVitals";

const root = ReactDOM.createRoot(document.getElementById("root"));
setInterval(() => {
  root.render(
    <React.StrictMode>
      <Clock />
    </React.StrictMode>
  );
}, 1000);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

** setInterval()함수를 사용해 1초마다 새롭게 Clock컴포넌트를 렌더링하도록 만들었다.

 

개발자 도구의 Elements탭을 보면 1초마다 반짝거리면서 값이 변경되고 있는 것을 볼 수 있다.

 

반응형

댓글