HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
👻
개발 기록
/
📑
강의 정리
/
📑
ReactJS 기초 : 유튜브 무료 강의
📑

ReactJS 기초 : 유튜브 무료 강의

Created
Oct 26, 2021 07:17 PM
Type
React
Mento
코딩애플
Created By

리액트를 사용하는 이유

  • 웹이지만 앱과 사용성이 비슷함(웹앱) → pwa, react native 등의 앱으로 발행이 쉬움.
  • 화면 깜빡임이 없어 구매율이 늘어남.

설치관련 기초 내용

  • create-react-app라이브러리를 사용하기 위해 nodejs 설치. nodejs를 설치하면 npm이라는 툴 이용 가능함.
  • public/index.html이 메인 페이지임. index.html에서 App.js 내용을 불러오는 것임. index.js에서 getElementById로 연결함.
  • node_modules는 라이브러리를 모아놓은 폴더임.
  • public은 static 파일 보관함임. 문법으로 변경되지 않는 그리고 변경이 잘 일어나지 않는 파일을 모아놓음.
  • src는 소스코드 보관함임. 실질적으로 코딩은 이 파일에 함.
  • package.json은 설치한 라이브러리 버전 등을 기록하는 목록임. npm으로 라이브러리 설치할 때마다 자동으로 기록됨.

JSX 사용법

  • 리액트에선 HTML 대신 JSX 문법을 사용함.
  • class 대신 className 사용. 이미 JS에서 class라는 문법이 예약되어 있기 때문.
  • 스타일링은 App.js에서 import 하고 있는 App.css에서 하면 됨.
  • 데이터 바인딩이 쉬움.
    • 데이터 바인딩이란 서버 등으로 부터 받은 데이터를 HTML에 넣는 것을 말함.
    • 데이터 바인딩을 위해 document.getquerySelector().innerHTML=''을 사용하지 않고 {변수명}을 사용하면 끝임. 이때 변수명 뿐만 아니라 return 값을 가지는 함수를 넣어도 return을 HTML에 잘 보여줌.
    • img 태그를 쓸 땐 src를 경로가 적힌 string으로 사용하는 것이 아닌 파일을 import하여 src={}형태로 데이터를 삽입함.
    • className도 중괄호로 데이터를 삽입할 수 있음.
    • style 태그를 사용할 땐 중괄호 안에 object 형식으로 추가해야 함. ex) <div style={ { color: 'blue' } } /> 이때 dash가 들어가는 속성은 camelCase로 작성해야 함. 다만 변수를 지정해서 삽입하는 방식을 더 권장함.

useState

  • 사이트에 필요한 데이터를 보관할 때 1) 변수에 넣거나 2) state에 넣는 방법이 있음.
  • state를 만들어 데이터를 넣는 방법임.
  • import { useState } from 'react'로 리액트의 내장함수 사용.
  • useState를 실행하면 array를 return 함. array의 첫 번째 파라미터로 데이터가 들어가고, 두 번째는 데이터를 수정하기 위한 함수가 들어감.
  • 이때 구조 분해 할당을 사용하면 변수를 간단하게 표현할 수 있음. ex) let [a, b] = useState()
  • state에 데이터를 저장해놓은 이유는 state가 변경되면 HTML이 자동으로 재렌더링 되기 때문임.
  • 일반 변수는 변경되어도 자동 재렌더링이 안되고 새로고침해야 됨.
  • 따라서 HTML이 새로고침 없이도 부드럽게 변경하기 위해선 state에 데이터를 저장해야 함.
💡
자주 바뀌는, 중요한 데이터는 변수가 아닌 state로 저장하기!

이벤트 리스너 (핸들러) 장착

  • onClick = { 클릭될 때 실행할 함수 }, onClick = { () => { 실행할 내용 } }
  • 이때 함수는 괄호를 제함. 클릭했을 때가 아닌 바로 실행이 되기 때문에.
  • state 값을 직접적으로 변경할 수 없음. useState의 두 번째 파라미터는 setState를 이용하여 state를 변경시켜주는 것임.
  • setState의 함수는 괄호 안에 변경을 원하는 함수 또는 계산식을 작성하면 됨.
  • 이렇게 setState로 데이터를 변경해야 재렌더링이 일어나는 것임.

state 변경하는 법

  • 변경함수를 사용하여 대체할 데이터를 입력함.
    • state를 직접적으로 수정할 수 없기 때문.
  • state를 복사해 변경함수를 만들 때 deep copy를 해야 새로운 배열로 만들어짐.
    • 스프레드 연산자 사용하기.
let [title, setTitle] = useState([ "강남 맛집 TOP3", "장건강 지키는 방법", "독서실 비용 총정리", ]); fuction changeTitle() { const newArr = [...title]; newArr[0] = '여자 코드 추천'; setTitle( newArr ); }

Component로 HTML 줄이는 법

리액트는 단일 div 태그 아래 HTML 코드가 작성되기 때문에 가독성이 떨어짐. 따라서 컴포넌트로 분리해서 해당 컴포넌트를 import 해주는 방식을 권장함.
  • 컴포넌트는 대문자로 시작해야 함.
  • 별도의 파일을 만들어 import 해주는 방식과, 단일 파일 내에 별도 function을 만들어 컴포넌트를 불러오는 방식이 있음.
  • 만약 의미 없는 div를 상단에 사용하기 싫으면 fragment인 <></> 코드를 작성하면 됨.

단점

  • state를 쓸 때 복잡해짐.
    • 상위 component에서 만든 state를 쓰려면 props 문법을 이용해야 함.

어떤걸 component로 만들까?

  • 반복출연하는 HTML 덩어리들.
  • 자주 변경되는 HTML UI들.
  • 다른 페이지 만들 때.