리액트 16의 세 번째 멋진 기능은 Error Boundaries이다. 직역하면 에러 경계이다. 이건 컴포넌트 자식의 에러를 관리할 수 있게 해 준다. 만약 포털이 에러를 만들면, 앱으로 관리할 수 있다. return types을 에러로 만들면, 동일하게 관리할 수 있다. 정상 작동할 경우에는 자식의 에러에만 한정된다. ErrorMaker 컴포넌트를 만들고 freinds에 몇 가지 이름을 넣어보자. 아래와 같이 렌더가 정상적으로 되었다. 이제 에러를 발생시켜보자. componentDidMount에서 setTimeout을 사용하여 1초 후 friends에 undefined를 할당해보자. 개발을 하다 보면 일반적이고 흔히 볼 수 있는 화면이다. 하지만 이런 화면은 사용자 입장에서는 불편하다. 에러를 잡아보자..
리액트 16의 두 번째 멋진 기능은 portals이다. 생각보다 유용해 보이지 않을 수 있는 데 사용하다 보면 유용함을 느낄 수 있다. 기본적으로 리액트는 div를 찾아서 마운트를 한다. 가끔은 리액트 root 밖에서 마운트를 해야 될 때가 있다 예를 들어 헤더가 root 밖에 있고 헤더의 타이틀 및 CSS를 변경하고 싶을 때 또는 다른 사이트를 로딩할 때 등이다. 이럴 경우 portals를 사용하면 된다. portals은 리액트 root 밖에서 리액트를 넣을 수 있도록 해준다. span 태그에 id를 지정해서 만들고 컴포넌트에서 엘리먼트를 리턴하는 대신 portals을 리턴하면 된다. import { createPortal } from 'react-dom'; const Message = () => 'J..
리액트 16의 멋진 기능 중 하나는 return type이다. 이전의 리액트에서는 컴포넌트 아니면 null을 리턴해야 했다. 그게 규칙이었다. string 같은 걸 return 할 수가 없었다. 하나가 아닌 두 개 이상의 리턴 하고 싶어도 이전의 리액트에서는 이렇게 작업을 하지 못했다. array로 감싸거나 span태그를 이용하여 다시 하나의 엘리먼트에 감싸줘야 했다. 불필요한 코드가 늘어났고 상당히 불편하였다. 리액트 16에서는 fragments라는 걸 활용할 수 있다. 또한 를 사용하여 대신할 수도 있다. 또한 String을 반환할 수 있다. fragments, string return type 리액트 16의 첫 번째 기능이다.
이번 리액트 프로젝트를 하면서 참고했던 책이다. 리액트에 대한 기본 설명이 잘되어 있으며, 실습을 통해 이해도까지 높일 수 있다. 10장 이전은 기본내용, 10장 이후로는 실무에서 사용할만 내용들로 구성되어있다. 또한 리액트 책 중에서는 손꼽는 책이며, 1판은 절판되어 E북으로만 구매가 가능하였다. 8월 31일 부로 2판이 나온 걸로 알고 있다. 이렇게 인기가 있을 정도로 책은 잘 구성되어있다고 생각된다. 또한 저자의 github나 블로그를 통해 추가적인 내용까지 확인할 수 있다. 기본서와 함께 실무 내용에 필요한 내용까지 포함된 좋은 책이라 생각되지만 지금 책을 구매하시는 분이라는 2판을 구매하여 최신 React 트렌드를 학습하기를 바란다.
리액트 개발에 있어 필수인 크롬 개발자 도구를 소개한다. 기본적으로 제공되는 크롬 개발자 도구에서는 리액트 정보를 확인할 수 없다. 필요한 플러그인을 설치하자. 크롬 웹 스토어에서 react를 검색하여 React Developer Tools을 설치하자. 설치가 완료되면 React로 구성된 페이지에서 개발자도구를 열면 React 탭이 나타난다. 리액트 컴포넌트들과 Props 값을 쉽게 확 인할 수 있다. 또한 설정 모양의 아이콘을 클릭하고 Highlight Updates 옵션을 활성화하면 리렌더링 될 때마다 빈도에 따라서 하늘색 -> 초록색 -> 노란색 -> 빨간색 순으로 표시가 된다.
React 자바스크립트 라이브러리로 오직 유저 인터페이스 뷰(View)만을 위한 라이브러리이다. Virtual DOM DOM(Document Object Model)은 객체로 문서 구조를 표현하는 방법이다. 리액트에서 데이터가 변하여 웹 브라우저에 실제 DOM을 업데이트할 때는 다음 절차를 가진다. 1. 데이터를 업데이트하면 전체 UI를 Virtual DOM에 리렌더링한다. 2. 이전 Virtual DOM에 있던 내용과 현재 내용을 비교한다. 3. 바뀐 부분만 실제 DOM에 적용한다. Virtual DOM에서 컴포넌트 변화를 감지해 낼 때 효율적으로 비교할 수 있도록 컴포넌트 내부는 DOM 트리 구조 하나여야 한다는 규칙이 있다. JSX 자바스크립트의 확장 문법으로 XML과 매우 비슷하게 생겼다. 코드로..
마지막으로 CSS를 적용하여 보다 보기 좋은 화면으로 만들어 보자. CSS 언급은 따로 하지 않겠다. /* index.css */ body { margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; background-color:#EFF3F7; height: 100%; } html, #root{ height:100%; } /* App.css */ .App { padding:50px; display: flex; justify-content: space-around; flex-w..
지난 시간에 API를 통해 영화 리스트까지 정보를 불러오는 것을 완성하였다. 추가적으로 필요한 정보는 포스터, 제목, 장르, 평점, 설명 등을 Component에 추가 구성해보자. App.js에 _renderMovies() 함수에서 추가로 받을 수 있는 정보를 기술하여 Movie Component에 전달한다. Movie.js Movie 컴포넌트에서 기본적인 HTML 구조를 잡았으며 각 정보별로 세분화된 Component를 구성하였다. 각각의 propTypes도 추가 작성하였다. 아직 css가 입혀지지 않았지만 데이터 정보는 완성되었다.
- SQL
- 정렬 알고리즘
- 이직
- 프로그래머스
- Maven
- Eclipse
- Collection
- React
- effective java
- Linux 명령어
- 성능분석
- 자바스크립트
- Tomcat
- 소프트웨어공학
- Java
- javascript
- sort algorithm
- 리액트
- 경력관리
- 프로그래머
- 자바
- 리액트 16
- 리눅스 명령어
- 개발환경
- 오라클
- 회고
- 제주도 3박4일 일정
- spring
- 제주도 여행
- 오라클 내장 함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |