-
리액트 설치 및 컴포넌트React 2022. 12. 19. 21:25
리액트 입문
리액트란?
- spa 전재, virtual DOM을 활용하여 업데이트 해야하는 DOM요소를 찾아서 해당 부분만 업데이트 하기 때문에 리렌더링 잦은 동적인 모던웹에서 향상된 퍼포먼스를 낼 수 있음
spa
- 하나의 마크업 html파일을 받아, 클라이언트에서 데이터를 직접 로딩해 동적으로 화면을 표시하기에 사용자가 페이지를 다시 로딩할 필요가 없어짐(깜박임이 없음)
DOM
- 웹페이지를 우리가 사용하는 자바스크립트와 같은 프로그래밍 언어와 연결해주어 화면에 그려진 UI요소를 검색할 수 있게 해줌
virtual DOM
- 실제로 렌더링 되지는 않았지만 실제 DOM구조를 반영한 상태로 메모리에 있는 "가상의 돔", 즉 리액트가 가상돔의 변화를 실제 옴에 적용하지 않는 이상은 아무리 많은 조작이 가상 돔에 일어나도 브라우저의 렌더링을 일으키지 않는다.
batching
- 만약 10개의 DOM 요소를 수정하는 것과 같은 변경 사항들을 한번에 묶어서 실제 DOM에 반영을 하는데, 이것을 batching 이라고 한다.
종합
- 간단하게 설명하자면, 네이버 페이지에서 버튼 하나를 빨간색으로 바꾸려고 할 때에 가상돔 없이 조작하게되면 페이지 전체에 대해서 다시 그려주는 페인팅 작업을 진행한다.
가상돔에서는 그렇지 않고, 이 버튼 하나만 빨간색으로 바뀌었구나, 알아채고 그 부분만 다시 그려주게 된다.
리액트 설치 및 실행
- 노드가 설치되어 있다면 터미널에 아래 명령어를 입력
1. npx creat-react-app 설치파일명 2. npm start
22.12.6 수정
npm install --global yarn
권한문제가 있어 sudo로 설치해준다.
이 후 https://create-react-app.dev/docs/getting-started 공식문서 참고하여 yarn으로 설치해주면, 기본적인 프로젝트에 필요한 모든 빌드툴들이 같이 설치된다.yarn create react-app
설치가 되었다면 아래 명령어 중 필요한 명령어를 실행한다.
yarn start // 개발용 모드로 프로젝트를 실행 yarn build // 배포할 때 사용 yarn test // 테스트코드 실행 yarn eject // 바벨이나 웹팩 등을 내 입맛에 맞게 변경하려면 사용, "정.말" 필요할 때만 사용
나는 일단 yarn start만 사용할 것 같다.
컴포넌트
- 코드 조각을 떼었다 붙혔다 하면서 재사용이 용이하게 해주는 문법.
외부에서 사용 가능하게 export를 해주고, 사용할 때에는 import를 해주어야 한다.
return문을 기준으로 위쪽은 자바스크립트를 쓸 수 있는 영역, 아래쪽은 JSX를 쓸 수 있는 영역
function App() { //javascript 작성하는 곳 return ( //JSX 작성하는 곳 <div className="App"> <header className="App-header"> <img src={logo} className="App-logo" alt="logo" /> <p> 항해99 리액트 입문주차 시작 </p> <a className="App-link" href="https://reactjs.org" target="_blank" rel="noopener noreferrer" > Learn React </a> </header> </div> ); }
컴포넌트 작성 시 주의할 점
- 가장 첫 글자를 대문자로 만들어야 함.
- 이벤트는 소문자 대신 카멜케이스를 사용
- JSX를 사용하여 문자열이 아닌 "함수"로 이벤트핸들러를 전달
function App() { // <---- 자바스크립트 영역 ----> const hi = () => { alert('hi') } return ( /* <---- HTML/JSX 영역 ---->*/ <div style={{ height: '100vh', display: ' flex', flexDirection: 'column', justifyContent: 'center', alignItems: 'center', }} > <p>이것은 내가 만든 App컴포넌트 입니다.</p> <button onClick={hi}>클릭!</button> </div> ); }
컴포넌트를 부모 자식 관계로 설정할 수 있다.
- 컴포넌트 안에 컴포넌트가 작성되는 경우를 뜻함
function Child() { return <div>나는 자식입니다.</div> } function App() { return <Child /> }
- 이런식으로 화면에 보여지게 하는 이 행위를 "렌더링" 이라고 한다.
'React' 카테고리의 다른 글
props (0) 2022.12.19 JSX (0) 2022.12.19 리액트에서 이미지 추가하기(초간단) (0) 2022.12.19 리액트에서 부트스트랩 사용하기 (0) 2022.12.19 Component, map(), props (0) 2022.12.19