📝

내 웹페이지에서 1분만에 도입해보기

해당 예제는 공식문서를 참고하고 있습니다.
React는 jQuery와 같은 프론트엔드 개발을 위한 '라이브러리' 입니다.(반면 Angular, Blazor는 프레임웤) 따라서 우리는 필요한 만큼만 가져다 사용할 수 있습니다! + 해당 부분에서는 '한번 해보기' 정도로 살펴가면 좋습니다. 자세한 내용은 뒤에서 다뤄보겠습니다.
  • 그 밖에 특징
    • Facebook에서 관리
    • 컴포넌트 관리 → 재사용
    • Virtual DOM(바뀌는 부분만 업데이트)
    • JSX(JS + XML)
    • 싱글페이지 어플리케이션 만들기 좋음(링크가 바뀌지 않음, 공식홈페이지) → 사용자 경험

리액트 맛보기

Web Front-End를 처음 배우며 html/css/js로 이루어진 웹 페이지 제작에 대한 기초를 배우셨을거에요. 우리는 익숙한 방법에 단지 몇 줄만 추가하여 기존의 html에 React를 사용해 보도록 하겠습니다.
  1. HTML 파일에 React 랜더링을 위한 DOM을 만들어줍니다.
    1. 먼저 편집할 HTML 파일을 index.html 이름으로 만들고 에디터를 통해 열어줍니다.
      <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>리액트 1분만에 추가해보기!</title> </head> <body> <h1>내 html에 리액트 1분만에 추가해보기!</h1> <p>단 1분만에 설치없이 리액트를 추가할 수 있다구요?</p> </body> </html>
      그 다음 비어있는 <div> 태그를 하나 만들어줄께요. 바로 이 태그를 통해 React가 내용을 표시하게 됩니다.
      <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>리액트 1분만에 추가해보기!</title> </head> <body> <h1>내 html에 리액트 1분만에 추가해보기!</h1> <p>단 1분만에 설치없이 리액트를 추가할 수 있다구요?</p> <!-- 추가된 <div> --> <div id="root"></div> </body> </html>
      <div> 태그에 식별을 위한 속성 id를 부여합니다. 이를 통해 js에서 태그를 찾고 React 컴포넌트를 출력하게 됩니다.
       
  1. React / React Dom cdn추가하기
    1. 다음은 react와 reactDom 라이브러리를 추가하는 스크립트입니다. 해당 스크립트를 </body> 태그 앞에 추가하겠습니다. 해당 라이브러리를 이용해 React 컴포넌트를 만들고 우리가 만든 HTML문서에 추가합니다.
      그리고 html파일과 같은 폴더에 hello_button.js 라는 이름으로 js파일을 하나 만들겠습니다. 그 다음 html에서 해당 파일을 추가해 주도록 할게요.
      <!-- ... 기존의 html ... --> <script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script> <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script> <script src="hello_button.js"></script> </body>
       
  1. React 컴포넌트 만들기
    1. 앞서 만들어둔 hello_button.js 파일에 스크립트를 작성을 해주겠습니다. 해당 부분은 react 컴포넌트를 만드는 부분입니다. 잘 이해가 되지 않아도 괜찮습니다. 자세한 내용은 뒤에서 다뤄 볼 것입니다!!
      // 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 el( 'button', { onClick: () => this.setState({ liked: true }) }, 'Hello' ); } }
       
  1. React 컴포넌트 추가하기
    1. React 컴포넌트를 제작했으니 보여주는 과정만 남았습니다. 이제 Hello 버튼을 가장 앞 과정에서 만들었던 root id를 가지고 있는 div태그에 추가하면 끝입니다! 아래 코드를 hello_button.js 파일 제일 하단에 추가합니다.
      const domContainer = document.querySelector('#root'); ReactDOM.render(el(LikeButton), domContainer);
       
  • 완성된 코드
    • 배포할 때에는 production으로 바꿔주시면 됩니다.
    • react.development → react.production
    • react-dom.development → production
<!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@17/umd/react.development.js" crossorigin></script> <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script> <script src="hello_button.js"></script> </body> </html>
index.html
// 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 el( 'button', { onClick: () => this.setState({ liked: true }) }, 'Hello' ); } } // DOM에 리액트 컴포넌트 랜더링하기 const domContainer = document.querySelector('#root'); ReactDOM.render(el(HelloButton), domContainer);
hello_button.js
  • 아래처럼 코드를 변경해보고 다시 실행해보세요.
return el( 'button', { onClick: () => { this.setState({ liked: true }); for (let i = 0; i < 10; i++) { console.log(`hello world ${i}`); } } }, 'Hello' );
 

 
  • 크롬 웹 스토어에서 설치하시고 리엑트 홈페이지에 들어가서 개발자도구를 열어보세요.