본문 바로가기

리액트 기기기초

#3.0 Understanding State

  • state : 데이터가 저장되는 곳
  • js
    • body, span등등이 다 업데이트 됨
    •  ->노드정보가 바뀔때마다 노드트리를 처음부터 다시 5단계에 걸쳐서 생성
  • react
    • ui에서 바뀐 부분만 업데이트해줌
    • 이전에 렌더링된 컴포넌트는 어떤거였는지 확인, 다음에 렌더링될 컴포넌트는 어떤지를 보고 다른 부분만 파악
    • ->가상돔을 써서 우리 시야에 보이는 부분만 수정해서 보여주고 모든 업뎃이 끝나면 일괄로 합쳐서 실제 돔에 던져줌
<!DOCTYPE html>
<html>

<body>
    <div id="root"></div>
    <!-- ReactDom이 react element를 가져다 놓을 곳 -->
</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.getElementById("root");
    let counter = 0;
    function countUp() { //함수
        counter = counter + 1;
        render(); //값을 바꿀때마다 리렌더링
    }
    function render(){ //함수
        ReactDOM.render(<Container />, root);
    }
    const Container = () => ( //함수
        <div>
            <h3>Total clicks:{counter}</h3>
            <button onClick={countUp}>Click me</button>
        </div>
    ); 
    ReactDOM.render(<Container />, root); 
</script>

</html>

'리액트 기기기초' 카테고리의 다른 글

#3.2 setState part Two  (0) 2023.02.28
#3.1 setState part One  (0) 2023.02.27
#2.6 JSX part Two  (0) 2023.02.27
#2.5 JSX  (0) 2023.02.27
#2.3 Events in React  (0) 2023.02.27