TechScribe Notes

[코딩애플;React]리액트...그거 왜 쓰는데..?/리액트 설치와 개발환경 셋팅/JSX 필수 문법 3가지 본문

프론트엔드/React

[코딩애플;React]리액트...그거 왜 쓰는데..?/리액트 설치와 개발환경 셋팅/JSX 필수 문법 3가지

yunmee0704 2023. 12. 29. 00:04

 

기본적으로 프론트엔드나 웹퍼블리셔를 하려면 꼭 필요한

HTML,CSS,JS...

이렇게 익숙한거 두고 왜 리액트를 쓰고 왜 많이 쓰나 생각해봐야한다.

 

리액트란? 웹과 네이티브 사용자 인터페이스를 위한 JS 라이브러리, 리액트가 라이브러리인 이유는 리액트는 전적으로 UI를 랜더링 하는데 관여하므로.

 

*다양한 자바스크립트 UI프레임워크

-앵귤러: 구글에서 만든 오픈소스 프로젝트. 5~6년전에 많이 사용되었지만 2022년 공식적인 지원 종료.

-뷰 js : 개인이 만든 오픈소스 프로젝트. 문법이 쉬워서 큰 기업에서 많이 사용함.

 

*라이브러리와 프레임워크

라이브러리: 흐름에 대한 제어를 하지 않고, 개발자가 필요한 부분만 필요할 때 가져다 사용함.

(어떠한 특정한 기능을 모듈화 해둠)

프레임워크: 흐름의 제어 권한이 개발자가 아닌 프레임워크가 가지고 있음.(어떤 앱을 만들기 위해 대부분의 것을 가지고 있음)

 

-프레임 워크는 라이브러리를 포함하고 또한 작성한 소스를 호출함. 그리고 소스코드는 어떤 기능을 구현하기 위해 라이브러리를 호출함.

 

리액트의 다양한 모듈들

 

첫번째 이유는

Single page Applicatiom을 만들기 위해서이다. 

-Virtual DOM을 사용하여 업데이트 할 최소한의 부분만 찾아 수정한다.

-html 1개만 쓰면서 다른 페이지를 보여주고 싶을 때 html부분만 다른 부분으로 바꿔서 보여줌

그래서 새로고침 없이도 부드럽게 보여준다

https://yunmee0704.tistory.com/34

 

[React 기초] 브라우저 작동원리 이해하기

브라우저 렌더링 ✔브라우저의 주요기능: 사용자가 선택한 자원을 서버에 요청하고 브라우저에 요청 HTML / CSS에 적힌 내용을 해석하여 W3C기준으로 표현한다. ✔브라우저의 기본 구조: 1. 사용자

yunmee0704.tistory.com

 

물론 바닐라 자바스크립트로도 가능하지만 너무 코드가 길어지니

리액트라는 라이브러리를 사용하는 것.

 

 

그 외 다른 이유는

-html을 함수, array, object 이런 곳에 보관하고 재사용 가능해서 html관리가 편리함

:재사용성이 높아지만 개발 기간이 짧아지고 유지보수가 간단해짐.

-React Native를 사용하면 리액트 문법으로 앱개발까지도 가능해짐!

-여러가지 기능을 위해 이미 만들어져 있는 라이브러리 환

 

하지만 단점은

-학습량이 방대함. 계속 업데이트가 되는 내용을 공부해야함

-높은 상태 관리 복잡도: 웹사이트가 커지면 컴포넌트의 개수가 많아지기 때문에

(이러한 문제를 해결하기 위해 Redux,Recoil과 같은 상태관리 라이브러리를 사용함.)

 

 

https://yunmee0704.tistory.com/35

 

[React 기초] React 개발 환경

React :페이스북 인터페이스를 만들기 위한 자바스크립트 UI라이브러리 :컴포넌트 단위로 ui구성을 도와주는 라이브러리 -Jquery vs React : 제이쿼리의 경우 변경된 내용이 있을 때 마다 전체 브라우

yunmee0704.tistory.com

 

 

그리고 꼭 알아두어야할 JSX(자바스크립트 확장 문법) 3가지

:JS와 HTML문법이 합쳐져 있음 (ex..html태그를 변수로 저장할 수 있다.)

1.html에 class넣을 때는 className!

2.html에 변수를 넣고 싶다면 {변수명} 이런식으로 넣기

 

JSX를 사용하는 이유 : 모든 UI를 만들때 마다 createElement를 사용해서 컴포넌트를 만들 수 없다. 그러기에 JSX를 사용한 후 그걸 바벨이 다시 createElement로 바꿔서 사용함!

function App(){

  let post = '강남 우동 맛집';
  return (
    <div className="App">
      <div className="black-nav">
        <div>블로그임</div>
        <div>{ post }</div>
      </div>
    </div>
  )
}

 

*href, id, className, src 등 여러가지 html 속성들에도 가능

function App(){

  var data = 'red';
  return (
    <div className="App">
      <div className="black-nav">
        <div>개발 blog</div>
        <div className={data}>안녕하세요</div>
      </div>
    </div>
  )
}

 

3. html에 style속성 넣고 싶으면 style={ }안에 자료형으로 넣어야 함.

 그리고 -기호가 들어간 속성명은 사용이 불가해서 카멜케이스로 작성해야한다.

<div style={ {color : 'blue', fontSize : '30px'} }> 글씨 </div>

 

4. 컴포넌트에 여러가지 엘리먼트가 있따면 반드시 부모요소 하나로 감싸줘야함!!

 

JSX의 장점

-코드가 간결해지고 가독성이 향상된다

-injection Attack(입력창에 문자나 숫자 같은 일반 적인 값이 아닌 소스코드를 입력하여 해당코드가 실행되게 하는 해킹 방법)이라는 해킹방법을 방어하여 보안성이 올라간다.

'프론트엔드 > React' 카테고리의 다른 글

[코딩애플;React]컴포넌트/ map  (0) 2024.01.09
[코딩애플;React] State  (1) 2024.01.08
[React 기초] state, props, Hook  (0) 2022.01.16
[React 기초] 컴포넌트  (0) 2022.01.12
[React 기초] React 개발 환경  (0) 2022.01.11