render
함수를 반드시 사용해야 한다.Component
클래스를 상속받아 사용한다.hooks
가 도입되어 함수형 컴포넌트에서도 상태 관리와 생명 주기 기능을 사용할 수 있다.1) 클래스형 컴포넌트
import React, { Component } from 'react';
class ClassComponent extends Component {
render() {
return (
<h1>Class Component 입니다.</h1>
);
}
}
export default ClassComponent;
2) 함수형 컴포넌트
const FunctionComponent = () => {
return (
<div>Function Component 입니다.
</div>
);
}
export default FunctionComponent;
!! JSX의 기본 규칙 !!
1) 전체는 하나의 태그로 감싸야 한다.
()
로 묶어 내부에 작성 해야 한다.function App() {
const str = 'hello'
return (
<div className='App'>
<h1>{str}</h1>
<p>Learning JSX</p>
</div>
);
}
export default App;
2) JavaScript 코드 사용
{}
로 감싸야 한다.if
문, for
문은 사용할 수 없다. (for문과 if문을 사용하고 싶으면 return 이 오기 전에 결과값을 저장하고 사용하면 됨)const str = 'hello';
return (
<div className='App'>
<span>{str}</span>
<span>{str === 'hello' ? 'world' : '세상'}</span>
<div>
{str === 'hello' ? (<div><h2>react</h2></div> : <div><h2>리엑트</h2></div>)}
</div>
</div>
);
3) 스타일링
camelCase
형식으로 작성해야 한다.const style = { fontSize: '20px', color: 'blue' };
return <div style={style}>Styled Text</div>;
4) 클래스와 이벤트
class
는 JSX에서 className
으로 작성한다.onClick
등 camelCase로 작성한다.return (
<div className="App" onClick={() => alert('Clicked!')}>
Click Me
</div>
);
5) Self-closing 태그
self-closing
태그로 작성해야 한다.<img>
, <input>
태그들도 다 닫아줘야한다.)return (
<div>
<img src="image.png" alt="example" />
</div>
);
6) 주석 작성
{/* ... */}
로 주석을 작성한다.return (
<div>
{/* This is a comment */}
<p>JSX 주석 예시</p>
</div>
);