아래 명령어를 입력하면 간편하게 React 앱을 생성할 수 있다.
npx create-react-app my-app
cd my-app
npm start
JSX(JavaScript XML)는 Javascript에 XML을 추가한 확장 문법이다. JSX로 작성된 코드는 브라우저에서 실행되기 전에 코드가 번들링되는 과정에서 바벨을 사용하여 일반 자바스크립트 형태의 코드로 변환된다.
function App() {
return <div>Hello World!</div>;
}
위의 코드는 아래와 같이 변환된다.
function App(){
return React.createElement("div", null, "Hello World!");
}
결론은 아니다. JSX는 리액트로 개발할 때 사용하므로 공식적인 자바스크립트 문법은 아니다.
//오류 코드
function App() {
return (
<div>Hello</div>
<div>World!</div>
);
}
//정상 코드
function App() {
return (
<div> //div 대신 <></>처럼 빈 태그를 사용해도 된다.
<div>Hello</div>
<div>World!</div>
</div>
);
}
JSX 안에서 자바스크립트 표현식을 사용하고 싶다면 코드를 { }로 감싸주면 된다.
function App() {
const name = "MM";
return (
<div>
<div>Hello</div>
<div>{name}!</div>
</div>
);
}
조건에 따라 다른 컴포넌트를 렌더링 하고 싶을 때에는 JSX 외부에서 사용하거나, { }안에서 삼항 연산자(조건부 연산자)를 사용 한다.
function App() {
let component = ''
const name = "MM";
if (name === 'MM'){
component = <div>MM 입니다.</div>
} else{
component = <div>누구세요?</div>
}
return (
<div>
{component}
</div>
);
}
function App() {
const name = "MM";
return (
<div>
{name === 'MM' ? <div>MM 입니다.</div> : <div>누구세요?</div>}
</div>
);
}
function App() {
const name = "MM";
return (
<div>
{name === 'MM' && <div>MM 입니다.</div>} //조건이 만족하지 않으면 아무것도 보이지 않는다.
</div>
);
}
function App() {
const name = "MM";
return (
<div>
{(() => {
if (name === "MM") {
return <div>MM 입니다.</div>;
} else {
return <div>누구세요?</div>;
}
})()}
</div>
);
}
function App() {
const style = {
backgroundColor: "red",
fontSize: "12px",
};
return <div style={style}>MM 입니다.</div>;
}
JSX 내에서는 {/ ~~ /} 로 주석을 사용 한다.
function App() {
return (
<div>
{/* 너무 어렵다. */}
MM 입니다.
</div>
);
}
시작 태그를 여러 줄에 작성 할 때는 이런식으로도 가능하다.
function App() {
return (
<div //이건 또 신기하네
>
MM 입니다.
</div>
);
}