HTML 태그는 .js 파일 안에서 쓸 수 없어서 나온것이 JSX이다.
+ 그럼 JSX에서 쓰는 <div>~~</div>
는 DOM 요소인가?
ㅡ> 정확히는 React 요소이다. 리액트 돔을 구성하는 건 리액트 요소라고 생각하자.
function App() {
return (
<div className="App">
<input type='text'>
</div>
);
}
위의 코드처럼 태그를 닫지 않으면 오류가 난다.
return (
<p>안녕하세요! 리액트 반입니다 :)</p>
<div className="App">
<input type='text'/>
</div>
);
위의 코드처럼 엘리먼트가 2개 이상일때 오류가 난다.
컴포넌트에서 반활할 수 있는 엘리먼트는 아래 코드처럼 1개이다.
return (
<div className="App">
<p>안녕하세요! 리액트 반입니다 :)</p>
<input type='text'/>
</div>
);
ㅡ> 중괄호를 사용한다.
const cat_name = 'perl';
return (
<div>
hello {cat_name}!
</div>
);
+ 값을 가져올 때 뿐만 아니라 map, 삼항연산자 등 자바스크립트 문법을 JSX 안에 쓸 때도 {}를 이용할 수 있다.
import React from 'react';
import logo from './logo.svg';
import './App.css';
function App() {
const number = 1;
return (
<div className="App">
<p>안녕하세요! 리액트 반입니다 :)</p>
<p>{number > 10 ? number+'은 10보다 크다': number+'은 10보다 작다'}</p>
</div>
);
}
export default App;
<div className="App">
+ id는 그냥 id로 사용한다.
HTML
<p style="color: orange; font-size: 20px;">orange</p>
JSX
<p style={{color: 'orange', fontSize: '20px'}}>orange</p>
function App() {
const styles = {
color: 'orange',
fontSize: '20px'
};
return (
<div className="App">
<p style={styles}>orange</p>
</div>
);
}