리액트
-
React :: 15. Context APIDev/프론트엔드 2021. 7. 26. 10:58
이 글은 김민준(벨로퍼트)님의 - 리액트를 다루는 기술 도서를 참고하여 학습하는 글 입니다. Context API는 리액트 프로젝트에서 전역적으로 사용할 데이터가 있을 때 유용한 기능입니다. 이를테면 사용자 로그인 정보, 애플리케이션 환경 설정, 테마 등 여러 종류가 있겠지요. Context API는 리액트 v16.3부터 사용하기 쉽게 많이 개선되었습니다. 이 기능은 리액트 관련 라이브러리에서도 많이 사용되고 있습니다. 예를 들어 리덕스, 리액트 라우터, styled-components 등의 라이브러리는 Context API를 기반으로 구현되어 있습니다. 이번 실습은 다음 흐름으로 진행됩니다. Context API를 사용한 전역 상태 관리 흐름 이해하기 - 기본적인 사용법 익히기 - 동적 Context ..
-
React :: 14. 외부 API를 연동하여 뉴스 뷰어 만들기Dev/프론트엔드 2021. 7. 23. 11:59
이 글은 김민준(벨로퍼트)님의 - 리액트를 다루는 기술 도서를 참고하여 학습하는 글 입니다. 지금까지 배운 것을 활용하여 카테고리별 최신 뉴스 목록을 보여주는 뉴스 뷰어 프로젝트를 만들어보자. https://newsapi.org/ 에서 제공하는 API를 사용하여 데이터를 받아 오고, 9장에서 배운 styled-components를 활욯하여 프로젝트를 스타일링 해보자. 이번 실습은 다음 흐름으로 진행된다 비동기 작업의 이해 - axios로 API 호출해서 데이터 받아오기 - newsapi API 키 발급받기 - 뉴스 뷰어 UI 만들기 - 데이터 연동하기 - 카테고리 기능 구현하기 - 리액트 라우터 적용하기 14.1 비동기 작업의 이해 웹 애플리케이션을 만들다 보면 처리할 때 시간이 걸리는 작업이 있다. 예..
-
React :: 13. 리액트 라우터로 SPA 개발하기Dev/프론트엔드 2021. 7. 22. 10:54
이 글은 김민준(벨로퍼트)님의 - 리액트를 다루는 기술 도서를 참고하여 학습하는 글 입니다. 그동안 책의 내용을 그대로 적었는데 올바른 학습방법이 아닌것같다. 이제부터는 먼저 읽어보고 이해한 내용을 토대로 작성하도록 해보겠다. 13.1 SPA란? SPA는 Single Page Application의 약어이다. 말 그대로 한 개의 페이지로 이루어진 애플리케이션이라는 의미이다. 기존의 웹 페이지는 여러 페이지로 구성이 되어 있었다. 기존에는 사용자가 다른 페이지로 이동할 때 서버에서 html을 받아 오고, 페이지를 로딩할 때 서버에서 리소스를 전달받아 브라우저가 해석한 뒤 렌더링이 되었다. 즉 사용자에게 보이는 화면은 서버 측에서 준비하였다. 사전에 html 파일을 만들어서 제공하거나, 데이터에 따라서 유동..
-
React :: 12. immer를 사용하여 더 쉽게 불변성 유지하기Dev/프론트엔드 2021. 7. 21. 11:13
이 글은 김민준(벨로퍼트)님의 - 리액트를 다루는 기술 도서를 참고하여 학습하는 글 입니다. 11장에서는 컴포넌트 업데이트 성능을 어떻게 최적화해야 하는지, 불변성을 유지하면서 상태를 업데이트하는 것이 왜 중요한지 배웠습니다. 전개 연산자와 배열의 내장 함수를 사용하면 간단하게 배열 혹은 객체를 복사하고 새로운 값을 덮어 쓸 수 있죠. 하지만 객체의 구조가 엄청나게 깊어지면 불변성을 유지하면서 이를 업데이트하는것이 매우 힘듭니다. 값 하나를 업데이트하기 위해 코드를 열 중 정도 작성해야 합니다. 이렇게 전개 연산자를 자주 사용한 것은 기존에 가지고 있던 다른 값은 유지하면서 원하는 값을 새로 지정하기 위해서죠. 간혹 실제 프로젝트에서도 이렇게 복잡한 상태를 다룰 때가 있는데, 그럴 때마다 전개 연산자를 ..
-
React :: 11. 컴포넌트 성능 최적화Dev/프론트엔드 2021. 7. 20. 16:15
이 글은 김민준(벨로퍼트)님의 - 리액트를 다루는 기술 도서를 참고하여 학습하는 글 입니다. 10장에서는 학습한 지식을 활용하여 멋진 일정 관리 애플리케이션을 만들어 보았스니다. 현재까지는 이 애플리케이션을 사용할 때 불편하지 않습니다. 추가되어 있는 데이터가 매우 적기 때문이죠. 그러나 데이터가 무수히 많아지면, 애플리케이션이 느려지는 것을 체감할 수 있을 정도로 지연이 발생합니다. 이번 실습은 다음과 같은 흐름으로 진행합니다. 많은 데이터 렌더링 하기 - 크롬 개발자 도구를 통한 성능 모니터링 - React.memo를 통한 컴포넌트 리렌더링 성능 최적화 - onToggle과 onRemove가 새로워지는 현상 방지하기 - react-virtualized를 사용한 렌더링 최적화 11.1 많은 데이터 렌더..
-
React :: 10. 일정관리 애플리케이션 만들기Dev/프론트엔드 2021. 7. 19. 17:19
지금까지 리액트의 기본기부터 시작해서 컴포넌트를 스타일링하는 방법까지 배워 보았습니다. 이 장에서는 지금까지 배운 지식을 활용하여 프런트엔드를 공부할 때 많이 구현하는 일정 관리 애플리케이션을 만들어 보겠습니다. 이번 실습은 다음 흐름으로 진해앟ㅂ니다. 프로젝트 준비하기 - UI 구성하기 - 기능 구현하기 10.1 프로젝트 준비하기 10.1.1 프로젝트 생성 및 필요한 라이브러리 설치 create-react-app을 사용하여 프로젝트를 생성하세요. $ yarn create react-app todo-app 프로젝트가 생성되면 todo-app 디렉터리로 들어가서 yarn을 사용하여 필요한 라이브러리를 설치하세요. $ cd todo-app $ yarn add node-sass@4.14.1 classnames..
-
React :: 8. HooksDev/프론트엔드 2021. 7. 16. 10:44
이 글은 김민준(벨로퍼트)님의 - 리액트를 다루는 기술 도서를 참고하여 학습하는 글 입니다. Hooks는 리액트 v16.8부터 새로 도입된 기능으로 함수형 컴포넌트에서도 상태 관리를 할 수 있는 useState, 렌더링 직후 작업을 설정하는 useEffect 등의 기능을 제공하여 기존의 함수형 컴포넌트에서 할 수 없었던 다양한 작업을 할 수 있도록 해 주었다. Hooks 배우기 리액트 내장 Hooks 사용하기 - 커스텀 Hooks 만들기 8.1 useState Counter.js import React, { useState } from "react"; const Counter = () => { const [value, setValue] = useState(0); return ( 현재 카운터 값은 {val..
-
React :: 컴포넌트의 라이프 사이클 메서드Dev/프론트엔드 2021. 7. 14. 13:41
7.1. 라이프 사이클 메서드의 이해 라이프 사이클 메서드의 종류는 총 아홉가지. Will 접두사가 붙은 메서드는 작업을 하기 전에 실행되는 메서드 Did 접두사가 붙은 메서드는 어떤 작업을 작동한 후에 실행되는 메서드 메서드들은 우리가 컴포넌트 클래스에서 덮어 써 선언함으로써 사용 가능. 라이프 사이클을 총 세가지가 있다. 1. 마운트 2. 업데이트 3. 언마운트 마운트 DOM이 생성되고 웹 브라우저상에 나타나는 것을 마운트(mount)라고 한다. 마운트 할 때 호출하는 메서드 컴포넌트 만들기 - constructor - getDerivedStateFromProps - render - componentDidMount constructor : 컴포넌트를 새로 만들 때마다 호출되는 클래스 생성자 메서드 g..