부스트코스 강의 웹 프론트엔드 시작하기 (리액트&리덕스)
중 'Ch2 리액트 맛보기'을 정리한 내용이다.
<div id="root"></div>
ReactDOM.render( <APP/> , document.getElementById('root') );
index.js파일을 보면 index.css 파일이 있는데, 이를 수정하면 된다.
App.js의 아래 코드는 app.js안에 있는 react의 컴포넌트가 로드됐을 때 app.css도 같이 로드되게 해준다.
import './App.css';
React가 만든 간단한 앱은 용량이 매우 큰 편인데, 개발의 편의성을 위해 다양한 기능이 추가되었기 때문이다. 따라서 사용자들에게 배포할 때는 다른 방법을 사용하는데, 'npm run start' 대신 'npm run build'로 create-react-app를 빌드해준다.
그럼 디렉토리에 새로운 'build'가 생긴다. build 디렉토리 내부의 파일들은은 용량을 줄이기 위해 공백을 제거한 상태이다.
서비스할 때는 build안의 파일들을 사용하면 되고, web server가 문서를 찾는 최상위 디렉토리인 web server의 doument root에 build안의 파일을 위치시키면 실서버 환경이 완성된다.
npm install -g serve를 통해 간단히 웹서버를 설치할 수 있다.
npx serve -s build 를 사용하면 한번만 시킬 웹서버를 실행시키는데, 서브라는 웹서버를 다운로드 받아 실행시킬 때 build 디렉토리를 document root로 한다.
보통 웹페이지를 만들 때 다음과 같이 html로 길게 코드가 작성된다.
<html>
<body>
<header>
<h1>WEB</h1>
world wide web!
</header>
<nav>
<ul>
<li><a href="1.html">HTML</a></li>
<li><a href="2.html">CSS</a></li>
<li><a href="3.html">JavaScript</a></li>
</ul>
</nav>
<article>
<h2>HTML</h2>
HTML is HyperText Markup Language.
</article>
</body>
</html>
시멘틱 태그를 사용해 다른 곳에 코드를 숨겨 코드를 간단하게 바꾸면서 실제로 기능적으로는 같은 웹페이지를 만들 수 있게 해준다.
<header>
<h1>WEB</h1>
world wide web!
</header>
이를 가능하게 해주는게 React이다.
App.js 파일에서 아래 코드 부분이 컴포넌트를 만드는 부분이다.
순수 html로 짠 코드 부분의
부분을 Subject라는 이름의 태그로 바꾸기 위해 아래 코드를 이용한다.class Subject extends Component {
render() {
return (
<header>
<h1>WEB</h1>
world wide web!
</header>
);
}
}
App.js파일에 자성한 코드는 자바스크립트와 비슷하지만 문법이 쉬운 'jsx'언어로, 페이스북에서 만든 언어이다.
다른 컴포넌트들도 마찬가지로 여러개 만들어 준다.
React의 컴포넌트는 '정리정돈의 도구'로 보면 좋다. 컴포넌트의 이름에만 집중하게 해 복잡도를 낮춘다.