개발 공부 일지/React

리액트 - 시작하기

yelimu 2024. 7. 30. 11:36

커맨드 (터미널 열고닫기 : 단축키 ctrl + `) 

 

시작하기(현재 디렉토리에 프로젝트를 생성)-> 개발에 필요한 파일들이 자동으로 생성됨

npm init react-app .

 

개발모드 실행 (브라우저에 바로 반영이 됨) 

npm run start 

 

개발모드 종료

ctrl + c 

개발모드를 종료하면 브라우저에서 프로그램 종료됨 

 

/src/App.js 에서 내용 수정하면 반영이 됨 

html 이랑 비슷한 문서.. jsx 라고 한다. (나중에 추가로 다루기로) 


리액트 개발자 도구 (크롬 확장 프로그램)

 

components, profiler 탭이 추가되었다. 리액트로 된 페이지에서만 보인다


리액트 프로젝트가 실행되면 브라우저는 index.html 파일을 열고 → index.js 코드를 실행

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="utf-8" />
    <title>주사위 게임</title>
  </head>
  <body>
    <div id="root"></div>
  </body>
</html>
import ReactDOM from 'react-dom/client';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render( // 그려주는 메소드
  <h1>안녕 리액투~!</h1>, //  새로운 h1 태그를 만들어서 첫번째 아규먼트로 받는다. 
  document.getElementById('root') // root ID 를 갖고있는 html요소가 두번째 아규먼트로 사용된다. 즉 첫번째 아규먼트를 두번째 아규먼트가 접근한 요소에 집어넣는다
);

JSX : 자바스크립트의 확장 문법


html 태그 이름을 완전히 그대로 쓰지는 못함

class -> className
for ->htmlFor 

이벤트 핸들러 이름도 조금씩 다르다 (camelCase로 써주기)
onblur / onBlur
onfocus / onFocus
onmousedown / onMouseDown

 

JSX 문법으로 html 태그를 작성할때는 반드시 하나의 감싸진 태그를 작성해야한다.
<></> : <Fragment></Fragment> 의 축약형 코드

const root = ReactDOM.createRoot(document.getElementById('root'));
const product = 'Macbook';
const model = 'Air';
const item = product + model;
const imgUrl = `~~~`;

function handleClick(){
  alert('곧 도착합니다!');
}

root.render( 
  <>
  <h1>나만의 {item} 주문하기</h1>
  <img src={imgUrl} alt="제품 사진"></img>
  <button onClick={handleClick}>확인</button> 
  </>, 
  document.getElementById('root') 
);

 

${변수명} 사용하는것 대신 {변수명}으로 비슷하게 쓸 수 있다

{ }안에서 변수 + 변수 로도 표현할 수 있지만 중괄호 안의 표현식은 가능한 간략하게 적도록 한다. 

 

img src="url주소" 대신 { url주소 }로

 

addEventListenr 대신 태그에 직접 속성 추가하기. 

onclick 이 아니라 onClick으로 해야 유효하다.