간만에 글을 작성한다.
사실 2차 팀프로젝트까지 전부 마무리 했는데, 스터디 프로젝트 하랴, 엘리스 팀 프로젝트 하랴 정신이 없어서 이제서야 블로그를 부랴부랴 정리하는 중이다.
반성합니다 ㅠㅠ,,,
스터디 프로젝트와 2차 팀프로젝트에선 백엔드를 다뤘기 때문에 리액트는 별도로 추가적인 공부와 토이, 팀프로젝트 경험이 필요할 것 같다.
프론트앤드 준비하면서 프론트의 꽃 리액트를 소홀히 하다니,,, 죽어 마땅하다.
여튼 엘리스 수료를 일주일 앞둔 지금부터라도 리액트 공부를 시작한다. 프로젝트 관련 회고는 리액트 관련 블로그 포스트를 좀 더 작성하고 작성예정이다.
-사용자 인터페이스를 만들기 위한 자바스크립트 라이브러리.
SPA(singlePageApplication) 구축을 위해 React를 사용한다.
SPA가 뭐냐? - 간단하게 이해하자면 서버에서 계속 페이지를 요청하는게 아닌 페이지 하나에서 내용을 동적으로 변경 할 수 있도록 구현한 애플리케이션이다.
-리액트를 개발하는데에 있어 독립적인 단위로 쪼개어 구현.
컴포넌트 단으로 쪼개어 페이지를 구성함으로서 데이터를 불러올 때 페이지가 새로고침 되는 게 아닌 데이터를 불러온 컴포넌트만 다시 구성해 재사용성을 높인다.
-가상적인 표현을 메모리에 저장하고 ReactDOM과 같은 라이브러리에 의해 실제 DOM과 동기화 하는 프로그래밍 개념이다.
간단하게 이해하자면 현재 작성되어져있는 코드와 가상에서 구상된 코드를 비교해서 현재 작성되어있는 코드에 가상돔의 변경된 부분만 동기화해준다.
-자바스크립트 내에서 UI를 작성하기 위해 개발자에게 익숙한 환경을 제공한다. HTML과 유사하게 작성이 가능하다.
-Component와 Hook을 활용, 작은 단위의 독립적인 요소로 개발하여 개발자의 생산성과 코드의 재사용성을 높인다.
-현재 React는 전 세계적으로 가장 활발하게 커뮤니티 활동이 이뤄지고 있어 방대한 자료와 편리한 오픈소스 라이브러리 등이 공유되고 있다.
-단순한 웹 애플리케이션 뿐만이 아니라 한번 배운 React 지식을 이용해 React-Native에 적용하여 안드로이드, ios 애플리케이션등을 개발할 수 있다.
-한국에서는 한가지 기술에 집중? 편향 되는 경향이 있기도 하고, 때문에 리액트를 사용하는 회사들이 대부분이다.
-React 프로젝트를 쉽게 생성할 수 있도록 도와주는 '보일러플레이트(Boilerplate)'
-수많은 React용 보일러플레이트 중 페이스북에서 직접 만들어 관리하는 CRA가 가장 많이 쓰인다.
-프로젝트 생성에 필요한 다양한 기능을 Command로 제공
터미널에 npx create-react-app <파일명>
cd <파일명>
npm start
npx란?
npm 패키지를 일회성으로 내려받아 실행할 때 사용하는 명령어
-npm을 이용해 설치한 패키지들 모음
-정적인 파일들을 모아 놓는 곳
-리액트 개발을 위한 파일들을 모아 놓는 곳
-Git을 이용할 경우 불필요하거나 Git에 업로드하면 안되는 파일들을 무시할 수 있도록 하는 설정 파일
-프로젝트에 관한 정보와 사용하는 패키지들을 명세하는 파일
-내 프로젝트에 관한 설명 작성하는 파일
-CSS나 import 하는 것 만으로 역할을 하는 라이브러리인 경우 패키지명을 바로 import
-기본적으로 패키지를 불러와 활용할 때에는 할당할 이름을 작성
-패키지 내의 일부 메서드나 변수만 가져올 때 구조분해를 통해 가져오는 것이 효율적
-패키지에 default로 export 되는 객체가 존재하지 않을 경우 *as 이름으로 불러올 수 있다.
-JSX는 함수 호출과 객체 생성을 위한 문법적 편의를 제공하는 JavaScript의 확장
-HTML과 비슷하게 생겼으나 JavaScript고 HTML과 다른 부분이 있음
-JSX는 Babel에 의해 Transcompile 된다.
-개발자 편의성 향상
-협업에 용이하고 생산성 향상된다
-문법 오류와 코드량 감소
-HTML 태그 내에 JavaScript 연산.
-class 대신 className을 사용한다.
-스타일은 object로 작성한다.
-닫는 태그가 반드시 필요하다.
-최상단 element는 반드시 하나만 사용한다.
-React에서 페이지를 구성하는 최소단위.
-Component의 이름은 대문자로 시작해야한다.
-Class Component/ Function Component로 나뉜다.
-Controlled Component/ UnControlled Component.
-초기 React의 Component는 모두 Class Componemnt였다.
v16부터 새로운 Function Component와 Hooks 개념이 발표되었으며
현재는 Function Component로 대부분이 사용중이다.
옛날에 작성해둔 코드는 Class Component인 경우가 아주 드물게 있다.
<Component user={{name: "창현"}} color="blue">
<div>안녕하세요!</div>
<Component>
컴포넌트에 Attribute에 해당하는 부분을 Props(Properties)라고 한다.
컴포넌트 안에 작성된 하위 Element를 Children이라고 하며 결국 props중 하나이다.
const Component = (props) => {
const { user, color, children } = props
return (
<div style={{ color }}>
<p>{user.name}님의 하위 element는?</p>
{children}
</div>
)
}
위 코드는 상위 Element로 부터 전달받은 props를 활용하는 코드다.
이 컴포넌트의 자식요소 역시 props로 부터 값을 받아온다.
-컴포넌트끼리 데이터 주고받을 때는 Props.
-컴포넌트 내에서 데이터 관리할 때는 State.
-데이터는 부모 -> 자식으로만 전달할 수 있다.
너무 늦어버린건 아닌지..