Front End/React

JSX (JavaScript syntax extension)

DevHam94 2023. 8. 12. 21:44

자바스크립트의 확장 문법으로 화면에서 UI가 보이는 모습을 나타내준다. 

JSX는 UI를 보이게할때 자바스크립트(logic)과 HTML구조(markup)을 같이 사용할 수 있어 기본 UI에 데이터가 변하는 것들이나 이벤트들이 처리되는 부분을 쉽게 구현하게한다. 

 

만약 JSX를 사용하지 않고 리액트를 사용하면 이렇게 사용해야한다. 

React.createElement API를 사용해 객체를 생성하고 In-Memory에 저장한다. 

ReactDOM.render 함수로 웹 브라우저에 그린다. 

const myelement = React.createElement('h1', {}, 'I do not use JSX');
->
ReactDOM.render(myelement, document.getElementById('root'));

 

babel이 자동적으로 변환을 해주는 작업을 해주는데

이런식으로 변환을 해준다. 

function hello() {
	return <div>Hello world!</div>;
}
->
function hello() {
	return /*_PURE_*/React.createElement("div", null, "Hello world!");
}

 

모든 UI를 만들때마다 createElement로 컴포넌트를 만들기 복잡하니

JSX를 사용하고 바벨이 다시 createElement로 바꿔서 사용한다. 

 

# 사용할때 주의해야할 문법 규칙들

컴포넌트에 엘리먼트 요소가 여러개 있다면 반드시 부모 요소 하나로 감싸줘야한다. 

// 잘못된 코드다
functino hello() {
	return (
    <div>Hello world!</div>
    <div>what are you doing</div>
    )
}

// 올바른 코드
function hello() {
	return <div>
    	<div>Hello world!</div>
        <div>what are you doing</div>
        </div>;
}

이렇게 <div>요소로 여러개의 요소들을 감싸줘야한다. 

'Front End > React' 카테고리의 다른 글

JSX Key 속성  (0) 2023.08.15
React Hooks  (0) 2023.08.13
Js 파일을 생성할때  (0) 2023.08.12
SPA(Single Page Application)  (0) 2023.08.12
React 개요  (0) 2023.08.12