강의 유튜브 주소 :

http://www.youtube.com/watch?v=V3QsSrldHqI&list=PLcqDmjxt30RtqbStQqk-eYMK8N-1SYIFn

 


일단 우리가 아는 HTML에서 CDN방식으로 React를 사용하려면 총3개의 script가 필요하다며

강의에서는 하단의 3개의 script 경로를 알려준다.

// react
<script src="https://unpkg.com/react@16/umd/react.development.js"></script> 

// react-dom
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> 

// babel-loader
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> 

babel-loader는 react문법을 html에서 알 수 있도록 컴파일하는 역할을 한다.

 

사용예제

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  
  // react
  <script src="https://unpkg.com/react@16/umd/react.development.js"></script> 
  
  // react-dom
  <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> 
  
  // babel-loader
  <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> 
</head>
<body>


  <div id="root"></div>
<!-- #root에 react로 생성한 dom 객체를 삽입한다. -->

<!-- text/babel 타입을 넣어주어야 babel-loader가 인식할 수 있다. -->
  <script type="text/babel">

	class LikeButton extends React.Component {
      constructor(props){
        super(props); // 이렇게 해줘야 class함수 내부에서 this로 접근할 수 있다.
        
        // state 선언
        this.state = {
          liked : false
        }
      }
      
      render(){

		// jsx 문법
        return (
        	<button type="submit" onClick={() => {
              this.setState({ liked : true })
            }}>
              { this.state.liked === true ? 'Liked' : 'Like' }
            </button>;
        );
      }
    }
  </script>

<!-- text/babel 타입을 넣어주어야 babel-loader가 인식할 수 있다. -->
  <script type="text/babel">
  
  	// ReactDom의 render 메소드를 통해 LikeButton 컴포넌트를 #root에 생성한 후 삽입한다.
    ReactDOM.render(<LikeButton />, document.querySelector('#root'));
  </script>
</body>
</html>

 

+ Recent posts