본문 바로가기
React

[REACT] 간단한 질문들.

by Minius 2019. 12. 7.
반응형

* 김민준님의 '리액트를 다루는 기술'을 공부하며 개인적으로 정리한 내용입니다.

 

ES6로 작성된 코드를 왜 다시 ES5로 변환을 하나?

- 구버전의 브라우저를 지원하기 위해

 

function App(){} - 함수형 컴포넌트

- 안에 들어가는 HTML 같이 생긴 내용도 HTML이 아니라 JSX이다.

 

JSX란?

- 자바스크립트 확장 문법

- 공식적인 문법이 아니다. 리액트에서만 쓴다.

 

JSX 문법

- 컴포넌트에 2개 이상의 요소가 있으면 하나로 크게 묶어야 한다.

// 안되는 문법
<h1>Hello</h1>
<h2>React</h2>



// 수정 후
<div>
	<h1>Hello</h1>
	<h2>React</h2>
</div>

- 감싸는 이유?

  - Virture DOM에서 효율적으로 비교할 수 있도록 트리 구조로 이루어져 있어야 하기 때문에.

- div가 싫다면 Fragment를 쓸 수 있다.

  - 다만, react 모듈에서 불러와야 한다.

import React, { Fragment } from 'react';

<Fragment>
	<h1>Hello</h1>
	<h2>React</h2>
</Fragment>

- Fragment도 싫다면?

<>
	<h1>Hello</h1>
	<h2>React</h2>
</>

정말 감싸주기만 하면 된다.

 

- var? const? let?

  - ES6에서 var 를 사용할 일은 없다.

  - 하지만 차이를 알아보자면 예를 들어

  - var는 전역변수, scope가 함수단위라 함수 안에서 다 통한다.

  - const, let은 지역변수, scope가 블록단위다. 함수 안에서 if블록 안에 있냐, 밖에 있냐로 다른 값이 된다.

  - const와 let의 차이는?

    - const 상수. 불변값이다.

    - let 변수. 가변값이다.

  - 기본적으로 const를 사용하고, 해당 값을 바꾸어야 할 땐 let을 사용한다.

 

- 컴포넌트 안에서 js를 쓰고 싶다면 {}로 감싸서 쓴다.

 

- 컴포넌트 안에서 if를 사용할 수 없다.

  - 삼항연산자는 사용할 수 있다.

  - (조건) ? 참 : 거짓

 

- 조건부 렌더링

  - 특정 조건에서 렌더링하고싶지 않을 때

{name === '리액트' ? <h1>리액트입니다.</h1> : null}

or

{name === '리액트' && <h1>리액트입니다.</h1>}

- name === '리액트' 부분이 false가 되기 때문에 {} 블록 자체가 false가 된다.

- 하지만 둘 중 하나가 0 을 반환하게 된다면, 0이 출력된다.

 

- undefined를 렌더링하지 않기

  - 정말 자주 만나게 되는 상황인데 책에서 언급해주셔서 좋았다.

  - 위의 상황을 반대로 이용하면 되는 듯 하다.

name || '값이 undefined입니다.'

- 인라인 스타일링

  - 카멜표기법으로 사용해야한다.

 

- class 대신 className

  - 사용은 되지만 console창에 경고가 계속 뜰 것이다.

 

- input, br 태그 등은 self-closing을 꼭 해준다.

 

- 주석

  - {/* 주석 */}

  - 너무 복잡한데, 자동완성으로 만들어 지겠지라는 생각을 해본다.

 

- ESlint

  - 문법검사

  - 메뉴 > 보기 > 문제 클릭

  - Menu > View > Problems 클릭

 

- Prettier

  - VS Code 기준

  - F1을 누르면 바로가기 창 같은게 뜬다.

  - Format Document 를 찾아서 엔터

  - Prettier Options 페이지에서 옵션값들을 찾아서 조정 할 수 있다.

  - 저장할 때 자동으로 코드 정리하기

    - File > Preferences > Settings 에 들어간다.

    - 상단 input 박스에 format 을 쓰면 Format On Save가 뜬다. 클릭.

 

'React' 카테고리의 다른 글

[React] 라이프사이클  (0) 2019.12.16
[REACT] state  (0) 2019.12.10
[REACT] props  (0) 2019.12.09
[REACT] 컴포넌트  (0) 2019.12.08
React native로 만든 프로젝트, APK로 만들기.  (1) 2018.05.04

댓글