what is JSX?
+) JSX, JSX in depth
Javascript XML | jsx는 자바스크립트 코드 안에서 html 태그를 작성할 수 있게 해 준다.
JSX는 자바스크립트 안에 속하는 개념으로, 자바스크립트를 html과 비슷한 문법으로 사용할 수 있게 만들어 주는 확장된 문법이다. React라는 라이브러리에서 jsx 문법을 순수 자바스크립트 코드로 변환해 주며, 최신 리액트 프로젝트에서는 import react 구문을 생략해도 jsx가 정상적으로 변환된다.
import Expenses from './components/Expenses';
function App() {
return (
<div>
<h1 className="greeting">
Hello, world!
</h1>
<Expenses expenses={expenses} />
</div>
);
}
일반적으로 컴포넌트를 만들 때 사용하는 방식이다.
import React from 'react'; // 생략 가능
import Expenses from './components/Expenses/Expenses';
/*
createElement(
rootElement,
{attribute: value},
childContent1,
childContent2, ...,
)
*/
function App() {
return (
React.createElement(
'div',
{},
React.createElement('h1', {className: 'greeting'}, 'Hello, world!'),
React.createElement(Expenses, {expenses: expenses}, ) // 컨텐츠가 없기 때문에 세번째 인자 생략
);
);
}
- 첫번째 예제 코드가 위의 코드로 변환된다.
- createElement 함수가 첫번째 인자로 rootElement를 받기 때문에, jsx 컴포넌트 함수는 형제 요소를 반환할 수 없는 것이다.
- html 태그에 사용되는 속성값은 예약어이기 때문에 jsx에서 직접 사용할 수 없다.
- class => className
- onclick => onClick
'Study > React' 카테고리의 다른 글
prevState (0) | 2022.06.16 |
---|---|
Event & useState (0) | 2022.06.16 |
Component & Props (0) | 2022.06.16 |
What is React? (0) | 2022.06.16 |
MVC & Dependency Injection (0) | 2022.04.29 |