개발환경 세팅을 마쳤으니 이제 react app을 만들어 볼 차례이다.
CRA 는 Create React App의 약자인데, 한 줄의 명령어로 React 프로젝트 개발에 필요한 요소들을 자동으로 구성하는 방법이다.
cd dev
yarn create react-app test-1
프로젝트를 만들고 싶은 디렉토리로 이동 후 명령어 입력
cd test-1
yarn start
프로젝트 디렉토리로 이동 후 프로젝트 시작

이 화면이 나온다면 성공!
(1) root 경로에 jsconfig.json 파일 생성
(2) 다음 내용 작성
{
"compilerOptions": {
"baseUrl": "src"
},
"include": ["src"]
}
이렇게 해주면 ./를 사용하지 않아도 된다.
컴포넌트 코드를 볼 때는 역역을 나눠서 보면 편하다.
컴포넌트 밖에선 필요한 파일을 import하거나 export하는 코드가 있다.
안에선 자바스크립트를 쓸 수 있는 부분이 있다.
그리고 return을 기준으로 아랫 부분에선 JSX를 작성할 수 있다.
import React from 'react';
function App() {
function handleClick(){
alert(`클릭!`);
}
return (
<div
style={{
height: '100vh',
display: ' flex',
flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center',
}}
>
<p>이것은 내가 만든 App컴포넌트 입니다.</p>
<button onClick={handleClick}>클릭!</button>
</div>
);
}
export default App;
function Child(){
return <div>나는 자식</div>;
}
function App(){
return <Child />;
}
App 컴포넌트는 Child 컴포넌트를 자식으로 삼고 있다.
JavaScript의 확장 문법으로 React Element를 생성하기 위한 문법
이전 포스팅에서 언급했듯 리액트엔 하나의 index.html만 존재한다.
그래서 리액트에서 뷰를 그릴 땐 JSX 문법을 사용해 React 요소를 만들고 DOM에 렌더링 시켜 그리게 된다.
return (
<div>
<p>Hello!</p>
</div>
);
이렇게 가장 바깥을 태그로 묶어 하나의 엘리먼트만을 반환해야 한다.
const name = "Jinwoo";
return (
<div>
hello {name}
</div>
);
값을 가져올 땐 중괄호를 사용해줘야 한다.
const number = 1;
return(
<div>
<p>{number > 10 ? number+'은 10보다 크다':number+'은 10보다 작다'}</p>
</div>
);
위와 같이 javascript 문법을 사용할 때도 중괄호를 사용해줘야 한다.
JSX로 작성하는 태그 내에서 클래스 명을 지정할 땐 속성 값을 className으로 사용해야 한다.
<div className="APP>
<p style ={{
color:'orange',
fontSize:'20px',
}}>
orange
</p>
중괄호를 두번 쓰는 이유는 앞서 말했듯 자바스크립트 문법이나 내용엔 중괄호를 사용해줘야 하는데 객체 역시 자바스크립트이기 때문이다.
객체의{} + JSX문법 {}