ddodoi 님의 블로그
11주차-파트03: 리액트 개념, jsx 문법 본문
CHAPTER 1. 리액트란?
✔️리액트
웹 프레임워크이다. React.js는 자바스크립트 라이브러리의 하나이다. 싱글페이지 어플리케이션(spa) 및 모바일 어플리케이션 개발 가능
리액트의 동작 원리
- 초기 랜더링 : 초기에 보여지는 화면
- 가상 DOM 변경 : 트리에서 변경된 부분이 생겼을 때 이전 랜더 함수가 만들었던 컴포넌트 정보와 현재 랜더 함수가 만든 컴포넌트 정보를 최소화된 연산으로 비교하여 둘의 차이를 알아낸 후 변화된 부분만 업데이트 한다.
- 재조정
- 실제 DOM 업데이트
리액트 설치
vsCode 터미널 창에서 다음 명령어를 쳐서 리액트를 설치한다 리액트 기반으로 하는 my-app프로젝트를 만든다.
npx create-react-app my-app
설치가 완료되면 다음 명령어를 쳐서 프로젝트 안으로 들어갈수 있다..
cd my-app
npm start
리액트를 이용해 타입스크립트 기반의 프로젝트를 만들어보자.
npx create-react-app todolist --template typescript
아까와 똑같이 다음명령어를 이용해 프로젝트 안으로 들어가보자.
cd todolist
npm start
CHAPTER 2. jsx문법
반드시 최상위 부모태그가 있어야 한다. 주로 <div></div> 태그나 <></> 태그를 쓴다.
App()함수에서 return 안에는 html코드를, 밖에는 자바스크립트 코드를 쓸 수 있다.
jsx내부에서 자바스크립트 코드를 표현하고 싶다면 중괄호{}를 이용한다.
밖에서 name변수에 문자열을 정의하고 해당 문자열이 화면에 출력되도록 해주었다.
조건연산자를 이용해 변수명에 따라 출력되는 값이 달리지도록 해보자. 만약 아무것도 출력하고 싶지 않다면 null을 사용하면 된다.
import React from 'react';
import logo from './logo.svg';
import './App.css';
function App() {
let name = "멍멍이";
return (
<div className="container">
<h1 className='test'>하이{
name === "멍멍이"? (<h3>갓댕이</h3>):(<h3>고양이</h3>)
}</h1>
<p>반갑습니다</p>
</div>
);
}
export default App;
🌱jsx에서의 inline styling
function App() {
let name = "멍멍이";
const style = {
backgroundColor : 'black',
color : 'white',
fontSize : '48px',
fontWeight : 'bold',
padding : '20px'
};
return (
<div style = {style}>
<h1 style = {style}>하이{
name === "멍멍이"? (<h3>갓댕이</h3>):(<h3>고양이</h3>)
}</h1>
<p>반갑습니다</p>
</div>
);
}
jsx에서는 반드시 닫는 태그를 써야한다.
<br/>
<br></br>
<input/>
🌱jsx의 주석
ctrl + / 단축키로 주석을 설정/해제할 수 있다.
{/*주석문을 작성합니다*/}
{/*
작성자 : 아무개
작성일 : 2024/11/01
내용: 기능에 대한 내용
*/}
'웹풀스택 일일정리' 카테고리의 다른 글
11주차:파트05: props, optional chaining (0) | 2024.11.01 |
---|---|
11주차-파트04: 컴포넌트, state, hook, 구조분해할당, type, useState, map (1) | 2024.10.31 |
11주차-파트02: 리터럴, any타입, 유니온, 타입별칭, 타입가드, Array와 Tuple, Spread 연산자, 클래스와 객체(생성자, 접근지정자, getter 와 setter) (0) | 2024.10.29 |
11주차-파트01: 타입스크립트, 데이터타입, 인터페이스, 열거형 (0) | 2024.10.28 |
10주차-파트05: 함수포인터, 구조체, 공용체, 열거형, 동적메모리 할당, 객체지향, 클래스, 오버로딩, 오버라이딩, 인터페이스, 람다 (0) | 2024.10.25 |