세모이
개발 계발
세모이
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • 알고리즘 (1)
    • 자바스크립트 (29)
    • 리액트 (10)
    • HTML&CSS (2)
    • TIL (26)
    • 파이썬 (8)
    • Dev (1)
    • 데일리 (3)
      • 2023 (3)
      • 2025 (0)
    • 에러일기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바스크립트 깊은 복사 얕은 복사
  • const let 키워드와 블록레벨 스코프
  • 자바스크립트 함수와 일급 객체
  • 자바스크립트 프로퍼티 어트리뷰트
  • 옵셔널 체이닝
  • 자바스크립트 전역 변수의 문제점
  • 자바스크립트 생성자 함수에 의한 객체 생성
  • 함수
  • 개발자 도구 Network
  • &&연산자
  • 자바스크립트 strict mode
  • 모던 자바스크립트 deep dive
  • 모던 자바스크립트 deep deive
  • html 신기한 태그
  • 시멘틱 태그
  • 모던 자바스크립트
  • 자바스크립트
  • 자바스크립트 프로토타입
  • 리액트 key
  • 자바스크립트 빌트인 객체

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
세모이

개발 계발

(리액트를 다루는 기술) 2장 JSX
리액트

(리액트를 다루는 기술) 2장 JSX

2021. 3. 12. 13:09
반응형

JSX

자바스크립트의 확장 문법이며 XML과 매우 비슷하게 생겼음

function App() {
  return (
   <div>
     Hello <b>react</b>
   </div>
  );
}

export default App;

위처럼 작성된 코드는 아래와 같이 변환


funcion App(){
    return React.createElement("div",null, "Hello", React.createElement("b",null,"react))

}
  1. 감싸인 요소

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

./src/App.js
SyntaxError: C:\Users\User\react\hello-react\src\App.js: Unterminated regular expression (6:21)

  4 | function App() {
  5 |   return (
> 6 |      Hello <b>react</b>
    |                      ^
  7 |   );
  8 | }
  9 |

--> <div></div> 감싸기

--> Fragment라는 컴포넌트 import하고 <Fragment></Fragment>로 깜싸기

--> Frament는 <></> 같은 형태로도 표현 가능

  1. 자바스크립트 표현
function App() {
  const name='리액트'
  return (
    <div>
      <h1>{name}</h1>
      <h2>안녕</h2>
    </div>


  );
}
  1. 조건부 연산자
  • JSX 내부의 자바스크립트 표현식에서 if문 사용 X
  • JSX 밖에서 if문 사용하거나 {} 안에 조건부 연산자(삼항 연산자) 사용
function App() {
  const name='리액트'
  return (
    <div>
      {name==='리액트' ? (<h1>리액트 맞음</h1>) : (<h1>리액트 아님</h1>)}
    </div>

  );
}
  1. AND 연산자(&&)를 사용한 조건부 렌더링
  • 특정 조건을 만족할 때 내용을 보여 주고, 만족하지 않을 때는 렌더링 X
function App() {
  const name='리액트'
  return (
    <div>
      {name==='리액트' && (<h1>리액트 맞음</h1>)}
    </div>

  );
}
  1. undefined를 렌더링하지 않기
  • 리액트 컴포넌트에서는 함수에서 undefined만 반환하는 상황을 만들면 안됨
import React from 'react'

function App() {
  const name=undefined;
  return name 
}

export default App;
Compiled with warnings.

src\App.js
  Line 1:8:  'React' is defined but never used  no-unused-vars

Search for the keywords to learn more about each warning.     
To ignore, add // eslint-disable-next-line to the line before.
import React from 'react'

function App() {
  const name=undefined;
  return name || '값이 undefined입니다'
}

export default App;
  • jsx내부에서 undefined를 렌더링 하는 것은 괜찮다
import React from 'react'

function App() {
  const name=undefined;
  return <div>
        {name}
  </div>
}

export default App;
  • name 값이 undefined일 때 보여주고 싶은 문구가 있다면 다음과 같이 작성
import React from 'react'

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

export default App;
  1. 인라인 스타일링
  • 리액트에서 DOM 요소에 스타일 적용 -> 객체 형태로 넣어야 함
import React from 'react'

function App() {
  const name='리액트';
  const style={
    backgroundColor:'black',
    color:'aqua',
    fontSize:'48px',
    fontWeight:'bold',
    padding:16
  }
  return (
  <div style={style}>
      {name} 
  </div>
  )}

export default App;
  • 바로 style 값 지정 하는 방법
import React from 'react'

function App() {
  const name='리액트';

  return (
  <div style={{
  backgroundColor:'black',
  color:'aqua',
  fontSize:'48px',
  fontWeight:'bold',
  padding:16}}>

      {name} 

  </div>
  )}

export default App;
  1. class 대신 className
import React from 'react'
import './App.css'

function App() {
  const name='리액트';

  return (
  <div className='react'>
      {name} 
  </div>
  )}

export default App;
반응형

'리액트' 카테고리의 다른 글

(리액트를 다루는 기술) 8장 Hooks  (0) 2021.04.08
(리액트를 다루는 기술) 6장 컴포넌트 반복  (0) 2021.04.01
(리액트를 다루는 기술) 5장 ref-dom에 이름 달기  (0) 2021.03.29
(리액트를 다루는 기술) 4장 이벤트 핸들링  (0) 2021.03.29
(리액트를 다루는 기술) 3장 Component  (0) 2021.03.19
    '리액트' 카테고리의 다른 글
    • (리액트를 다루는 기술) 6장 컴포넌트 반복
    • (리액트를 다루는 기술) 5장 ref-dom에 이름 달기
    • (리액트를 다루는 기술) 4장 이벤트 핸들링
    • (리액트를 다루는 기술) 3장 Component
    세모이
    세모이
    개발 공부!

    티스토리툴바