일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 장고
- 리액트
- 코틀린
- 프로그래머스 자바
- 코딩테스트 고득점 Kit
- react hook
- 코딩테스트 고득점 Kit 완전탐색
- 리액트 훅
- NextJS
- 자바
- react
- React JS
- 프로그래머스 완전탐색
- 자바스크립트
- Java
- websocket
- design pattern
- 컴퓨터 네트워크
- useEffect
- JavaScript
- codesandbox
- 프로그래밍 언어론
- 자바 공부
- react firebase
- vanillaJS
- 프로그래머스
- 백준
- 데이터모델링과마이닝
- useState
- 디자인 패턴
Archives
- Today
- Total
기록하는 개발자
<React 파헤치기-09> 컴포넌트 - 1. JSX 본문
728x90
JSX : JavaScriptXML
자바스크립트에 XML을 추가한 확장형 문법
XML 또한 HTML의 표현법을 확장한 문법이기 때문에 HTML을 다룰 줄 안다면 JSX도 쉽게 체득할 수 있다.
대신 JSX는 HTML이 아니라 마크업 규칙을 따르기 때문에 아래와 같은 차이점이 발생한다.
//HTML
<img src="image1.jpg">
//JSX
<img src="image2.jpg" />
- JSX 에서는 element의 시작표시 <와 />의 짝이 맞지 않으면 react 엔진이 jsx를 분석할 때 오류가 발생한다.
<JSX의 작동 원리>
1. index.js 파일은 npm run start 혹은 yarn start를 통해 리액트 서버를 구동했을 때 가장 먼저 실행되는 파일이다.
2. index.js는 'root'라는 id를 가진 element에 App component를 출력한다.
(root라는 id를 가진 element는 index.html에 명시되어있다.)
import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/App';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
react 엔진은 아래와 같이 JSX의 XML 구조를 분석하여 JS 함수 코드로 변환한다.
import React from "react";
class App() extends React.Component{
render(){
return (
<div>
<div>안녕하세요</div>
<div/>
);
}
}
export default App;
...
return (
React.CreateElement(
"div",
null,
React.CreateElement(
"div",
null,
"안녕하세요",
)
)
);
그러나 react를 사용하면 위 과정을 모두 알 필요가 없다. 개발자는 JSX만 작성하고, react 엔진은 JSX를 기존 Javascript로 해석하는 역할만 하면 된다.
이를 선언형 화면(declaration view)기술이라 부른다. 이를 통해 JSX는 개발자가 화면 구성에만 집중하도록 도와준다.
728x90
'Web > React' 카테고리의 다른 글
<React 파헤치기-11> 컴포넌트 - 3. property (0) | 2021.12.14 |
---|---|
<React 파헤치기-10> 컴포넌트 - 2. 컴포넌트와 구성요소 (0) | 2021.12.14 |
<React 파헤치기-07> ES6주요문법 - 5. 배열함수(foreach, map, reduce) (0) | 2021.12.11 |
<React 파헤치기-06> ES6주요문법 - 4. 객체확장표현과 구조분해할당 (0) | 2021.12.11 |
<React 파헤치기-05> ES6주요문법 - 3. 화살표 함수 (0) | 2021.12.10 |