React에서 속성은 Properties를 줄여 Props라고 한다.
이 Props는 입력값이다.
이 안에는 객체가 들어간다.
function Counter(props) { // 2. 파라미터 props 설정
return <div>
<h1>{props.title}</h1> // 3. 호출
<button>+</button> {props.initValue} // 3.1 호출
</div>
}
function App() {
return (
<div>
<Counter title="불면증 카운터" initValue={10}></Counter> // 1. 속성 부여(title, initValue), 4. 호출
</div>
);
}
JavaScript의 확장 문법으로 HTML 문법을 그대로 사용할 수는 없다.
대표적으로 class와 for가 있는데,
// CSS에 class를 적용하는 속성
<p class="hello">안녕!</p> // <p className="hello">
//Javascript - 객체지향의 개념으로 class 키워드 사용
class Hello {
console.log('Hello!');
}
JSX에서 class 속성을 사용하려면 className 으로 작성해야 합니다.
//HTML에서의 for
<form>
<label for="name">이름</label> // label 태그에서
<input id="name" type="text" /> // input 태그와 함께 사용
</form>
반면에 Javascript에서는 반복문에서 for를 사용
JSX 문법으로 HTML의 for 속성을 사용하기 위해선
<form>
<label htmlFor="name">이름</label> // htmlFor 라고 작성
<input id="name" type="text" />
</form>
소문자로 작성하던 이벤트 핸들러들은 JSX 문법으로 작성하면
두 번째 단어부터는 첫 글자를 대문자로 작성해야한다.
이를 카멜 표기법이라 한다.