React💙

React | JSX 문법

MAYMIN 2024. 3. 19. 00:28
728x90
SMALL

🔷리액트를 다루는 기술 #5

 

 

🔵감싸인 요소

리액트 컴포넌트에서는 요소 여러개를 꼭 하나의 요소로 감싸주어야한다.

 

그 이유는 ?

VIrtual DOM에서 컴포넌트 변화를 감지할때, 효율적으로 비교할 수 있도록

컴포넌트 내부는 하나의 DOM 트리구조로 이루어져야한다는 규칙이 있기 때문이다.

 

리액트 v16이상은 <Fragment></Fragment> 기능을 사용하면 된다. 

import { Fragment } from 'react';

function App() {
  return (
    <Fragment>
      <h1>hi</h1>
      <h2>bye</h2>
    </Fragment>
  );
}

export default App;

 

동일하게 아래처럼도 사용 가능하다.

function App() {
  return (
    <>
      <h1>hi</h1>
      <h2>bye</h2>
    </>
  );
}

export default App;

 

 

🔵자바스크립트 표현

JSX 안에서는 {} 를 사용하여 자바스크립트 표현식을 쓸 수 있다.

import { Fragment } from 'react';

function App() {
  const fruit = 'apple'
  return (
    <Fragment>
      <h1>{fruit} hi</h1>
      <h2>bye</h2>
    </Fragment>
  );
}

export default App;

 

 

🔵조건부 연산자

조건부 연산자란 다른 이름으로는 삼항 연산자라고 부른다.

 

import { Fragment } from 'react';

function App() {
  const fruit = 'apple'
  return (
    <Fragment>
    {fruit === 'apple' ? (
      <h1>사과입니다.</h1>
    ) : <h2>사과가 아닙니다.</h2>}
      <h2>bye</h2>
    </Fragment>
  );
}

export default App;

 

 

🔵 AND 연산자 (&&)를 사용한 조건부 렌더링

 

특정 조건을 만족할 때 내용을 보여주고, 만족하지 않을 때 아예 아무것도 렌더링 하지 않도록 하고 싶을 때는!

 

function App() {
  const fruit = 'apple'
  return (
    <>
      {fruit === 'apple' ? <h1>사과입니다.</h1> : null}
    </>
  );
}

export default App;

 

 

[&& 연산사 사용]

function App() {
  const fruit = 'apple'
  return (
    <>
      {fruit === 'apple' && <h1>사과입니다.</h1>}
    </>
  );
}

export default App;

 

 

&& 연산자로 조건부 렌더링 할 수 있는 이유 ?

리액트에서 false 를 렌더링 할 때는 null과 마찬가지로 아무것도 나타나지 않기 때문.

 

🔵 undefined 렌더링하지 않기

 

리액트 사용할 때 가장 많이 마주했던건

undefined 렌더링해서 오류생기는 거였다.. ;;

 

!!! 어떤 값이든 undefined 일 수도 있다면, OR(||) 연산자를 사용하면,

해당 값이 undefined 일 때 사용할 값을 지정할 수 있기에 간단하게 오류 방지 가능하다.

 

function App() {
  const fruit = undefined
  return (
    <>
      {fruit  ||  '값이 undefined입니다..'}
    </>
  );
}

export default App;

 

결과

 

값이 undefined 일 때 보여주고 싶은 값이나, 문구가 있다면

위 처럼 || 연산자를 사용하면된다 !!

 

 

 

🔵 className 사용하기

 

JSX 에서는 class가 아닌 className으로 사용해야한다.

 

[className 사용]

import './App.css';

function App() {
  const name = '리액트'
  return (
    <>
      <div className='react'>{name}</div>
    </>
  );
}

export default App;
.react{
  background: aqua;
  color: black;
  font-size: 48px;
  font-weight: bold;
  padding: 16px;
}

 

[결과]

 

[class 사용]

 

위와 동일하게 스타일이 적용되기는 하지만,

콘솔창에 아래와 같은 경고가 뜬다.

 

 

리액트 v16이상부터는 calss를 className으로 변환시켜 주고 경고를 띄운다.

 

 

🔵 ESLint , Prettier

 

ESLint : 문법 검사 도구

 

Prettier : 코드 스타일 자동 정리 도구

> Prettier는 스타일을 쉽게 커스터마이징 가능하다. 

> 루트디렉토리에서 .prettier라는 파일을 생성한 후 커스터마이징하면, 자동으로 적용이된다.

728x90
LIST

'React💙' 카테고리의 다른 글

React | props 사용하기  (0) 2024.03.20
React | 화살표 함수와 export, import ?  (0) 2024.03.20
React | src/index.js 분석  (0) 2024.03.18
React | JSX 코드 이해하기  (0) 2024.03.18
React 특징 | Virtual DOM ? DOM?  (2) 2024.03.15