예시 1)
const element = <h1>Hello, world!</h1>;
위의 희한한 태그 문법은 문자열도 HTML도 아니다. 바로 JSX다.
JSX란 자바스크립트를 확장한 문법으로 JSX는 React 엘리먼트를 생성한다
예시 2)
const hi = <p>Hi</p>;
const myFavorite = {
food: <li>샐러드</li>,
animal: <li>dog</li>,
hobby: <li>programming</li>
};
const hi = <input readOnly={true} />;
const myFavorite = {
food: <li>샐러드</li>,
animal: <li>dog</li>,
hobby: <li className="list-item">programming</li>
};
<input>
태그와 같이 하나의 태그가 요소인 경우에는 <input />
const good = (
<div>
<p>hi</p>
</div>
);
1) (필수) 소괄호로 감싸기
: 중첩된 요소를 만들려면 ()로 소괄호로 감싸야 한다
2) (필수) 항상 하나의 태그로 시작
const wrong = (
<p>list1</p>
<p>list2</p>
);
위와 같이 제일 처음 요소가 sibling이면 안됩니다. 무조건 하나의 태그로 감싸져야 합니다. 아래의 코드처럼 첫 요소는 하나의 태그로 감싸주세요.
const right = (
<div>
<p>list1</p>
<p>list2</p>
</div>
);
html 요소(element), 또는 React 요소 등의 코드가 눈으로 볼 수 있도록 그려지는 것을 렌더링(rendering) 이라고 한다
React 요소가 DOM node에 추가되어 화면에 렌더되려면 ReactDOM.render 함수를 사용합니다. 첫 번째 인자에는 JSX로 React 요소를 인자로 넘기고, 두 번째 인자는 해당 요소를 렌더하고 싶은 container(부모요소)를 전달합니다.
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('root')
);