본문 바로가기

React ⚛️31

[React] Class Component와 Functional Component의 차이 클래스형 컴포넌트(Class Component) class App extends Component { render() { return 안녕! } } 기존의 React는 Class Component를 기반으로 작업했다. Class Component를 이용해 만들어낸 컴포넌트는 말그대로 하나의 객체처럼 동작할 것이다. this 를 통해 자기 자신을 칭하고, 뭔가 변화가 생기면 render() 메서드를 다시 호출해 리랜더링을 할 것이다. 그런데 객체를 사용할 때면 매번 언급되는 문제점이 있다. 객체를 이용한 프로그래밍 방식에서는 객체가 가지고 있는 상태와 메서드가 적절히 어우러지도록 설계한다. 이런 구조에서 메서드의 결과물은 상태의 영향을 받게 되는데, 상태에 따라 그 결과 값이 의도치 않게 변한다는 점이 문.. 2023. 2. 11.
[React] React.memo의 개념과 사용법 const MyComponent = React.memo(function MyComponent(props) { /* props를 사용하여 렌더링 */ }); 컴포넌트가 동일한 props로 동일한 결과를 렌더링해낸다면, React.memo를 호출하고 결과를 메모이징(Memoizing)하도록 래핑하여 경우에 따라 성능 향상을 누릴 수 있습니다. 즉, React는 컴포넌트를 렌더링하지 않고 마지막으로 렌더링된 결과를 재사용합니다. React.memo는 props 변화에만 영향을 줍니다. React.memo로 감싸진 함수 컴포넌트 구현에 useState, useReducer 또는useContext 훅을 사용한다면, 여전히 state나 context가 변할 때 다시 렌더링됩니다. 이 메서드는 오직 성능 최적화를 위.. 2023. 2. 9.
[React] Props의 개념과 사용법 프로퍼티(Props)란 ? 프로퍼티는 props(properties의 줄임말)로, 상위 컴포넌트가 하위 컴포넌트에 값을 전달할때 사용합니다.(단방향 데이터 흐름) 프로퍼티에 문자열을 전달할 때는 큰따옴표(" ")를, 문자열 외의 값을 전달할 때는 중괄호{ }를 사용합니다. 그리고 true와 false와 같은 Boolean 자료형의 경우, 중괄호로 감싸서 전달할 필요 없이 프로퍼티의 이름만 선언하면 됩니다. 이전에 Component 게시물에서도 언급했듯, props는 읽기 전용이기 때문에 하위 컴포넌트에서는 상위 컴포넌트의 프로퍼티를 수정할 수 없습니다. ⭐️⭐️⭐️ import React, { Component } from 'react'; import Header from './component/Head.. 2023. 2. 7.
[React] Components의 종류(선언형/클래스형) 및 사용법 Component 란 ? 리액트로 만들어진 앱을 이루는 최소한의 단위로, 데이터(props)를 입력받아 View(state) 상태에 따라 DOM Node를 출력하는 함수 또는 클래스 👉🏻 'props'라고 하는 인자를 받은 후, 화면에 어떻게 표시되는지를 기술하는 React Element를 반환 기존의 웹 프레임워크는 MVC방식으로 분리하여 관리하여 각 요소의 의존성이 높아 재활용이 어렵다는 단점이 있었습니다. 반면 컴포넌트는 MVC의 뷰를 독립적으로 구성하여 재사용을 할 수 있고 이를 통해 새로운 컴포넌트를 쉽게 만들 수 있습니다. React에서는 소문자로 시작하는 컴포넌트를 DOM 태그로 인식하기 때문에 컴포넌트 이름은 항상 대문자로 시작해야 합니다 ⭐️⭐️ Components let you spli.. 2023. 2. 7.
[React] Element의 개념 및 렌더링 Element란 ? 리액트에서의 가장 작은 단위로, 화면에 표시할 내용을 기술합니다. 위와 같이 HTML 파일 어딘가에 가 있다고 가정해 봅시다. 이 안에 들어가는 모든 엘리먼트를 React DOM에서 관리하기 때문에 이것을 “루트(root)” DOM 노드라고 부릅니다. (React로 구현된 애플리케이션은 일반적으로 하나의 루트 DOM 노드가 있습니다.) const root = ReactDOM.createRoot( document.getElementById('root') ); const element = Hello, world; root.render(element); React 엘리먼트를 렌더링 하기 위해서는 우선 DOM 엘리먼트를 ReactDOM.createRoot()에 전달한 다음, React 엘리먼.. 2023. 2. 7.
[React] JSX의 개념 및 문법 const element = Hello, world!; JSX란 ? JSX(JavaScript XML)란 Javascript에 XML을 추가한 확장한 문법으로, React Element를 생성합니다. JSX로 작성한 코드는 브라우저에서 실행되기 전에 코드가 번들링(여러 개로 흩어져 있는 파일들을 압축, 난독화 등을 하여 하나의 파일로 모아주는 것)되는 과정에서 Babel을 사용하여 일반 자바스크립트 형태의 코드로 변환 됩니다. function App(){ return ( Hello react ); } 예를 들어 위의 코드는 아래와 같이 변환됩니다. function App(){ return React.createElement("div", null, "Hello", React.createElement("b".. 2023. 2. 6.