Web Tech/react

React 기본 - 4.JSX

걍가영 2022. 1. 11. 16:20

JSX
javascript 확장한 문법이며, UI를 구성하기 위해 react와 함께 사용할 것을 권장합니다.
react는 별도의 파일에 마크업과 로직을 넣어 기술을 분리하는 대신, 포함하여 컴포넌트 형식으로 사용합니다.

const el = <p>Hello, React!</p>


JSX 를 javascript 제대로 변환하기 위한 규칙
1. 닫혀야 하는 태그
태그와 태그 사이에 내용이 들어가지 않을 때에는, Self Closing(열리고, 바로 닫시는 태그) 태그 라는 것을 사용해야합니다.

import React from 'react';
import Hello from './Hello';

function App() {
  return (
    <div>
      <Hello />
      <Hello />
      <Hello />
      <input />
      <br />
    </div>
  );
}

export default App;

2. 반환값 바로 최상단에 감싸져야 하는 태그
두개 이상의 태그는 무조건 하나의 태그로 감싸져 있어야 합니다.
빈 div로 감싸게 되면 스타일 관련 설정을 하다가 복잡해지기 때문에 리액트의 Fragment 권장

import React from 'react';
import Hello from './Hello';

function App() {
  return (
	// 리액트의 Fragment 사용으로 최상단에 감싸기
    <React.Fragment>
      <Hello />
      <div>안녕히계세요</div>
    </React.Fragment>
  );
}

export default App;

3. JSX 안에 자바스크립트 값 사용
JSX 내부에 자바스크립트 변수를 보여줘야 할 때에는 {} 으로 감싸서 보여줍니다.

import React from 'react';
import Hello from './Hello';

function App() {
  const name = 'react';
  return (
     <React.Fragment>
      	<Hello />
      	<div>{name}</div>
     </React.Fragment>
  );
}

export default App;

4. style 과 className
인라인 스타일을 객체 형태로 작성을 해야하며 camelCase 형태로 네이밍을 해주어야 합니다.

import React from 'react';
import Hello from './Hello';
// 가져올 해당 css 파일
import style from './Hello.css'

function App() {
  return (
     <React.Fragment>
      	<Hello />
	// 스타일을 줄 해당 앨리먼트에 import 한 이름.클래스네임
      	<div className={style.div_el}></div>
     </React.Fragment>
  );
}

export default App;