React는 jQuery와 같은 프론트엔드 개발을 위한 '라이브러리' 입니다. 따라서 우리는 필요한 만큼만 가져다 사용할 수 있습니다! 해당 부분에서는 '한번 해보기' 정도로 살펴가면 좋습니다. 자세한 내용은 뒤에서 다뤄보겠습니다.

1. Ctrl + C, Ctrl + V!

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>리액트 1분만에 추가해보기!</title>
  </head>
  <body>
    <h1>내 html에 리액트 1분만에 추가해보기!</h1>
    <p>단 1분만에 설치없이 리액트를 추가할 수 있다구요?</p>
    <div id="root"></div>

		<script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
	  <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
   
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
    <script type="text/babel">
        // react 컴포넌트 정의하기
        const el = React.createElement;

        class HelloButton extends React.Component {
          constructor(props) {
              super(props);

              this.state = { liked: false };
          }

          render() {
              if (this.state.liked) {
                  return 'Hello World!';
              }

              return (
                <button onClick={() => this.setState({ liked: true })}>
                    Hello
                </button>
            );
          }
        }

        // DOM에 리액트 컴포넌트 랜더링하기
				const domContainer = document.querySelector('#root');
				const root = ReactDOM.createRoot(domContainer);
				root.render(el(HelloButton));
    </script>
  </body>
</html>

<aside> 💡 우리 수업에서는 앞으로 지금 현업의 트렌드인 함수형 컴포넌트를 사용할 예정입니다.

</aside>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>리액트 1분만에 추가해보기!</title>
  </head>
  <body>
    <h1>내 html에 리액트 1분만에 추가해보기!</h1>
    <p>단 1분만에 설치없이 리액트를 추가할 수 있다구요?</p>
    <div id="root"></div>
	  <script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
	  <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
    <script type="text/babel">
        function HelloButton(props) {
            return (
                <button onClick={()=>console.log('실행')}>
                    Hello
                </button>
            );
        }

        const app = (
            <div>
                <HelloButton/>
                <HelloButton/>
                <HelloButton/>
                <HelloButton/>
                <HelloButton/>
            </div>
        );

        // DOM에 리액트 컴포넌트 랜더링하기

				const domContainer = document.querySelector('#root');
				const root = ReactDOM.createRoot(domContainer);
				root.render(app, domContainer);
    </script>
  </body>
</html>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>리액트 1분만에 추가해보기!</title>
  </head>
  <body>
    <h1>내 html에 리액트 1분만에 추가해보기!</h1>
    <p>단 1분만에 설치없이 리액트를 추가할 수 있다구요?</p>
    <div id="root"></div>
    <script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
	  <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
    <script type="text/babel">
        function HelloButton(props) {
            const [text, setText] = React.useState('Hello');

            function handleClickButton() {
                setText('Hello World');
            }

            return (
                <button onClick={handleClickButton}>
                    {text}
                </button>
            );
        }

        const app = (
            <div>
                <HelloButton/>
                <HelloButton/>
                <HelloButton/>
                <HelloButton/>
                <HelloButton/>
            </div>
        );

        // DOM에 리액트 컴포넌트 랜더링하기
				const domContainer = document.querySelector('#root');
				const root = ReactDOM.createRoot(domContainer);
				root.render(app, domContainer);
    </script>
  </body>
</html>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>리액트 1분만에 추가해보기!</title>
  </head>
  <body>
    <h1>내 html에 리액트 1분만에 추가해보기!</h1>
    <p>단 1분만에 설치없이 리액트를 추가할 수 있다구요?</p>
    <div id="root"></div>
    <script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
	  <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
    <script type="text/babel">
        function HelloButton(props) {
            const [text, setText] = React.useState('Hello');

            function handleClickButton() {
                setText('Hello World');
            }

            return (
                <button onClick={handleClickButton}>
                    {text}
                </button>
            );
        }

        const app = (
            <div>
                <h1>hello world</h1>
                <p>hello world</p>
                <HelloButton/>
                <HelloButton/>
                <HelloButton/>
                <HelloButton/>
            </div>
        );

        // DOM에 리액트 컴포넌트 랜더링하기
        const domContainer = document.querySelector('#root');
				const root = ReactDOM.createRoot(domContainer);
				root.render(app, domContainer);
    </script>
  </body>
</html>

2. React의 특징