Programming/React

JSX -> Basic

i독 2021. 10. 13. 06:38

JSX -> JavascriptXML 줄임말.

> 해당 형식으로 작성된 코드는 브라우저에서 실행되기 전에 코드가 번들링되는 과정에서 바벨을 사용하여 일반 자바스크립트 형태의 코드로 변환된다. (리액트 엔진은 JSX XML 구조를 분석하여 JS Code 변환)

> 이러한 리액트 엔진은 선언형 화면(Declarative View)기술이라 부른다.

> div / span 같은 HTML 태그를 사용 있다. 또한 JSX 만들어진 Component 태그 형식으로 사용 있다.

 

JSX 문법

 

> 감싸인 요소

 컴포넌트에 여러 요소가 있다면 반드시 부모 요소 하나로 감싸야 한다. Virtual DOM 컴포넌트의 변화를 효율적으로 비교할 있도록 내부는 하나의 DOM 트리 구조로 이루어져야 한다는 규칙이 있다.

 

React 16v 이상 버전부터는 div 태그 아니라 Fragment 기능을 사용할 있다. (Fragment Component 불러옴으로써)

 

    1 import React, { Fragment } from 'react';

 

굳이 불러오지 않고도, JSX 코드 <> </> 감싸도 같은 기능으로 적용된다.

반대로 HTML에서는 굳이 요소를 닫지 않아도 상관 없었으나, 리액트에는 반드시 요소를 닫아주어야 하며, 태그 사이에 내용이 필요 없는 경우에는 self-closing 사용한다. ex) <input />

 

> 자바스크립트 표현

 JSX 단순 DOM 요소를 렌더링하는 기능만 있는 것이 아니다. JSX 안에는 JS 표현식을 사용 있으며, 코드를 { } 감싸면 Code 실행된다.

  IF 문을 사용할 없으므로 조건부 연산자를 대신 사용해야 한다. => IF(?), AND(&&), OR(||)

    1 { value == 'True' ? ( <H1>True.</H2> ) : ( <H1>False</H2> ) }

 주석은 오로지 Javascript Code내에서만 가능하기에 반드시 { } 요소 사이에 Javascript 주석을 사용하여 저장 해야 한다.

 

> 인라인 스타일링

 리액트 내의 DOM 요소에는 문자열 형태가 아닌 객체 형태로 넣어야 하기 때문에, '-'으로 표시된 이름은 사용해선 안된다.

 이러한 스타일 요소는 camel case 변환해준다. ex ) background-color > backgroundColor

 또한 CSS Class 사용할 없기에, className으로 설정해야 CSS 바르게 적용된다.

 

> props 렌더링

 props 값은 컴포넌트 함수의 파라미터로 받아와서 사용할 있다.

 

> JSX Markup 표현식을 모두 사용 있다.

 

'Programming > React' 카테고리의 다른 글

Component Callback&event handling  (0) 2021.10.13
Component 배열 활용  (0) 2021.10.13
Component Life Cycle  (0) 2021.10.13
Debounce & Throttle  (0) 2021.10.13
Basic  (0) 2021.10.13