REACT

동키·2022년 12월 2일
0

REACT
유저 인터페이스를 만드는 데 사용할 수 있는 자바스크립트 라이브러리
SPA 구현을 위해 사용하는 경우가 많음
(이 목적으로 만든 라이브러리로 angular.js 나 vue.js도 있습니다.)

React의 'component'

개념
화면을 구성하는 재사용 가능한 모듈
View는 전체 화면을 의미하는 경우가 많고 Component는 전체 화면의 일부분을 의미합니다. View는 전체화면을 만드는 개념이라 재사용성이 떨어지는 반면, Component는 화면을 구성하는 부품이기때문에 재사용성이 높습니다.

  • 특정 부분의 모양을 결정하는 선언체
    • 템플릿 엔진은 데이터셋과 HTML을 가지고 HTML을 재생성해서 보여주는 용도로만 사용하는 반면, 컴포넌트는 많은 기능을 내장하고 있어서 재사용 가능한 기능을 가지고 있는 개체입니다.
  • 사용방법
    • 클래스형 컴포넌트 (초창기)
      - 함수를 만드는 방법
      <예시>
      class App extends Component { render() { const message = "클래스형 컴포넌트 - 예전에 많이 사용"; return <div className="react">{message}</div>; } };

장점
1. 라이프 사이클을 이용하는 것이 가능 ;
함수는 호출하면 안의 내용을 수행하고 호출한 곳으로 리턴
인스턴스는 한번 만들어지면 소멸시키기 전까지 존재하고 생성될 때 생성자와 같은 메서드가 호출되기 때문에 수명주기에 따른 작업이 수월합니다.

  1. 내부에 메서드 구현이 가능합니다.
  • 함수형 컴포넌트 (최근)

    • 함수를 만드는 방법
      1.function 이름(매개변수){ 내용; }

      2.let 이나 const 이름 = function(매개변수){ 내용; }

      3.let 이나 const 이름 = function(매개변수) => { 내용; }
      ㄴ(화살표 함수에서 매개변수가 1개면 {} 생략 가능)
      ex) (e) => {alert(e);} = e => alert(e)

      +@-------------------------------------------------------------
      (화살표 함수에서 return은, return을 생략하면 마지막 문자의 결과가 리턴됩니다)

      (a,b) => {return a+b;} =(a,b) => {a+b}

      -- 위 괄호안의 내용은
      자바의 lambda에서도 동일한 문법이 적용되는 사실을 알아 두면 좋습니다.

  • 확장자

    • 확장자는 이전에 js를 많이 사용했지만 최근에는 명확하게 구분하기 위해 jsx나 tsx를 사용하는 경우가 많습니다.
  • 장점

    Virtual DOM을 이용해서 출력속도가 빠름

    • DOM은 자바스크립트 내장 객체보다 처리속도가 느린데,
      REACT에서는 버츄얼 돔을 이용해 출력할 내용을 메모리에 만든 후 데이터가 변경되면 버츄얼돔에 적용을 하고 실제 돔과 비교를 한 후 변경되는 부분만 수정해서 출력하는 형태로 동작해서 빠르게 출력합니다.

    • 템플릿엔진은 데이터가 변경이 되면 변경된 데이터와 HTML을 가지고 다시 화면을 만들어 출력을하는데, 이 방식은 게임엔진이 화면 출력을 만드는 방식입니다.

  • 단점
    REACT 만으로는 애플리케이션을 만들 수 없기 때문에 화면을 만드는 것을 제외한 기능은 직접 구현해야합니다.

    • ajax 처리를 위한 axios,fetch API와 같은 데이터를 가져오기 위한 라이브러리와
      redux와 같은 라이브러리들을 같이 학습하게 됩니다.


webpack;

  • 프로젝트에 사용된 파일을 분석해서 웹 문서 파일로 변환해주는 도구
    웹 브라우저는 hs와 css그리고 html을 해석할 수 있는데 프레임워크나 라이브러리를 사용하다보면 이러한 확장자 이외의 파일을 만들어서 사용하는 경우가 있는데 이 경우 webpack이 css나 html로 변환해줍니다. (직접 설치할 필요는 없습니다.)

    babel

  • 대다수의 브라우저들은 es6 버전의 자바스크립트 문법까지는 정용할 수 있는데 그 이상 버전의 문법은 이해하지 못하는 경우가 있습니다. 이때 바벨이 이러한 코드들을 es6 이하의 문법으로 변환해줍니다.(=Trans Compiler)

    형상 관리 도구

  • GIT이 대표적

    디버깅을 위한 도구

  • 크롬 확장프로그램 ; React Developer Tools

    JSX
    =>JavaScript XML 의 약자로 JavaScript 에 XML을 추가한 확장형 문법으로 react 프로젝트에서 사용하는 문법
    =>브라우저에서 실행할 때 Babel이 자바스크립트 코드로 변환을 해서 실행
    1)장점
    =>보기 쉽고 익숙
    =>코드 작성 중 오류가 있으면 Babel이 코드를 변환하는 과정에서 이를 감지
    =>HTML 태그 와 Component를 혼용해서 개발하는 것이 가능

  • React 프로젝트를 만들기 위한 애플리케이션 설치
    yarn global add create-react-app

    React Application 생성 및 실행
    1) 생성 - create-react-app 애플리케이션 이름
    -> 기본 구조가 만들어져서 나옴 (entrypoint는 app.js)
    2)실행 - yarn start
    -> app.js를 읽어서 실행하고 브라우저를 자동으로 실행시켜 줍니다. 기본포트는 3000번 입니다.


규칙
=>주석
{/ 주석 /}
// 나 /* */도 가능하지만 이렇게 주석을 만드는 경우 /> 는 다음 줄에 나와야 합니다.

  • 반드시 하나의 부모 요소로 시작해야 합니다.
    루트는 반드시 하나여야 합니다.

  • 태그는 반드시 닫아야 합니다.
    닫는 태그를 사용하던가 아니면 빈 태그처럼 <태그 /> 으로 처리를 해주어야 합니다.

  • 자바스크립트 내용을 출력하고자 하는 경우에는 { } 안에 표현

  • if 는 사용할 수 없지만 삼항 연산자 사용 가능

  • 스타일을 적용할 때는 객체 형식으로 설정
    문자열로 설정하지 않음
    모든 스타일 속성은 camel case를 이용
    스타일에서 - 가 들어가는 경우 이름이 변경됩니다.
    background-color => backgroundColor

  • class 속성 대신에 className 이라는 속성 이용


    자바스크립트는 boolean 이외의 데이터도 논리연산 )||와 &&가 가능)
    0이 아닌 숫자나 null, undefined가 아니면 true로 간주

profile
안녕하시와리

0개의 댓글