HTML 은 두가지 태그가 있다. 시작태그와 끝태그
그런데 img / input 같은 태그들은 하나의 태그만 가짐
이런 태그들은 self-closing tag라고 한다.
self-closing tag를 사용할 때 HTML에서는 슬래쉬를 붙여도 되고 안붙여도 된다
근데 !JSX에서는 slash를 무조건 포함시켜야 한다.
self-closing tag일지라도…
<br / >
이렇게 !
JSX element의 tags들 사이에 모든 코드들은 JSX로 읽힐 것. 보통 JS code로 읽히지 않음
JSX는 JS처럼 number를 더하지 않는다. -> 그저 텍스트처럼 HTML같이 읽는다.
JSX 태그들 사이에 있지만 js로 읽게 하려면 { } 중괄호 써야 함 !
ex.
<h1> {2 +3} </h1>
이렇게 써줘야지 !
js처럼 계산이 됨!
그러면 5 이렇게 뜬다!
*밖에서 호출해준 변수를 변수안에 또 사용 가능
{ } 중괄호안에 넣고…
js 로 만들어준 변수
Ex.
const name = ‘hailey’;
const greeting = <p> Hello, {name} </p>
출력 : Hello, hailey
변수로 어떤 값을 js로 설정해놓고 jsx 에
해당 태그의 속성을 width = {변수이름} 이렇게 넣을 수 있다 !
Ex.
const sideLength = “200px”;
const panda = (
<img
src=”images/panda.jpg”
alt=”panda”
height={sideLength}
width={sideLength} />
);
-> img의 height / width 라는 attribute 를 {} 변수로 설정
if ( 조건 ) {
변수 = (
태그~
)
}
js 에서 x ? y : z
→ x가 true이면 y
false 이면 z 이다.
const peopleLis = people.map(person =>
<li>{person}</li>
ReatDOM.render(
<ul>{peopleLis}</ul>,
document.getElementById(‘app’)
)
JSX 문법을 안쓰면 내용이 이렇게 길어진다.
<JS>
const h1 = <h1>Hello world</h1>
const h1 = React.createElement(
“h1”,
null,
“Hello, world”
);
<JSX>
const h1 = <h1>Hello world</h1>;