You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _old_corrections/개정판-1쇄.md
+84Lines changed: 84 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,28 @@ $ yarn config set prefix ~/.yarn
12
12
$ echo 'export PATH="$(yarn global bin):$PATH"' >> ~/.bash_profile
13
13
```
14
14
15
+
## 2.3.2 업데이트 (pg.41)
16
+
17
+
3월 11일부터 create-react-app 으로 새로 만든 프로젝트에는 다음과 같이 `StrictMode`가 적용되어있습니다. `StrictMode`는 리액트 프로젝트에서 레거시 기능을 사용하지 않도록 검사를 해줍니다. 자세한 내용은 https://ko.reactjs.org/docs/strict-mode.html 에서 참고 가능합니다.
18
+
19
+
20
+
```diff
21
+
ReactDOM.render(
22
+
+ <React.StrictMode>
23
+
<App />
24
+
+ </React.StrictMode>,
25
+
document.getElementById('root')
26
+
);
27
+
```
28
+
29
+
30
+
### 참고 박스 추가:
31
+
32
+
> **React.StrictMode는 무엇인가요?**
33
+
> `React.StrictMode`는 리액트 프로젝트에서 리액트의 레거시 기능들을 사용하지 못하게 하는 기능입니다. 이를 사용하면 문자열 `ref`, `componentWillMount` 등 나중에는 완전히 사라지게 될 옛날 기능들을 사용했을 때 경고를 출력합니다.
34
+
>
35
+
> 이 책이 작성될 시점 (2019년 8월)에는 해당 옵션이 기본적으로 적용되어있지 않았었기 때문에, 앞으로 이 책에 나타나게 될 index.js에 `React.StrictMode`가 적용되어있지 않으니 참고하세요.
> **React.StrictMode가 적용되어 있으면 일부 라이브사이클이 두번씩 호출됩니다.**
61
+
>
62
+
> 2.3.2에서 언급했었던 `React.StrictMode`가 적용되어 있으면 일부 라이브사이클이 두 번씩 호출됩니다. 개발 환경에서만 두 번씩 호출이 되며 프로덕션 환경에서는 정상적으로 호출되니 안심하세요. 만약에 책에서 나오는 스크린샷과 동일한 결과물을 보시고 싶다면, index.js를 열어서 `React.StrictMode`를 제거하고 `App` 컴포넌트만 렌더링 하시면 됩니다.
63
+
34
64
## 8.2.3 (pg. 199) - 개선사항
35
65
36
66
`useEffect`를 사용하는 부분의 deps 배열이 비어있어서 ESLint 경고가 나타납니다. 이 경고를 없애기 위하여 deps 배열에 name 을 넣어주세요.
@@ -47,6 +77,26 @@ useEffect(() => {
47
77
+ }, [name]);
48
78
```
49
79
80
+
## 8.5 useCallback 설명 수정
81
+
82
+
`useCallback`에 대한 설명이 적절치 않아 수정합니다. 개정판을 작성할 당시 Hooks가 나온지 얼마 안됐을때 작성된거라, 좋지 못한 설명이 들어갔던 것 같습니다. 사실 함수는 매번 생성이 되는거고 이전에 만든 함수를 재사용 할 수 있는 것에 의미를 둬야 하는 Hooks인데, 책에서 설명을 할 때 함수를 "필요할 때만 생성"한다고 표현했었습니다. 추가적으로, `useMemo`와 비슷하지만 사실상 동일한 코드가 아니므로 해당 설명을 제거하였습니다.
83
+
84
+
무조건 습관적으로 `useCallback`을 매번 사용하는 것 보다, 실질적으로 최적화를 할 수 있는 상황에서만 사용하는 것이 좋습니다.
3월 11일부터 create-react-app 으로 새로 만든 프로젝트에는 다음과 같이 `StrictMode`가 적용되어있습니다. `StrictMode`는 리액트 프로젝트에서 레거시 기능을 사용하지 않도록 검사를 해줍니다. 자세한 내용은 https://ko.reactjs.org/docs/strict-mode.html 에서 참고 가능합니다.
11
+
12
+
13
+
```diff
14
+
ReactDOM.render(
15
+
+ <React.StrictMode>
16
+
<App />
17
+
+ </React.StrictMode>,
18
+
document.getElementById('root')
19
+
);
20
+
```
21
+
22
+
23
+
### 참고 박스 추가:
24
+
25
+
> **React.StrictMode는 무엇인가요?**
26
+
> `React.StrictMode`는 리액트 프로젝트에서 리액트의 레거시 기능들을 사용하지 못하게 하는 기능입니다. 이를 사용하면 문자열 `ref`, `componentWillMount` 등 나중에는 완전히 사라지게 될 옛날 기능들을 사용했을 때 경고를 출력합니다.
27
+
>
28
+
> 이 책이 작성될 시점 (2019년 8월)에는 해당 옵션이 기본적으로 적용되어있지 않았었기 때문에, 앞으로 이 책에 나타나게 될 index.js에 `React.StrictMode`가 적용되어있지 않으니 참고하세요.
29
+
8
30
## 3.4.1 (pg. 105) 개선
9
31
10
32
컴포넌트가 상속받고 있는데, "상속하는" 이라고 잘못 설명하여 이를 수정합니다.
@@ -15,6 +37,36 @@
15
37
- 이 함수가 호출되면 현재 클래스형 컴포넌트가 상속받고 있는 리액트의...
16
38
```
17
39
40
+
## 7.3.2 내용 업데이트
41
+
42
+
### 참고 박스 추가:
43
+
44
+
> **React.StrictMode가 적용되어 있으면 일부 라이브사이클이 두번씩 호출됩니다.**
45
+
>
46
+
> 2.3.2에서 언급했었던 `React.StrictMode`가 적용되어 있으면 일부 라이브사이클이 두 번씩 호출됩니다. 개발 환경에서만 두 번씩 호출이 되며 프로덕션 환경에서는 정상적으로 호출되니 안심하세요. 만약에 책에서 나오는 스크린샷과 동일한 결과물을 보시고 싶다면, index.js를 열어서 `React.StrictMode`를 제거하고 `App` 컴포넌트만 렌더링 하시면 됩니다.
47
+
48
+
49
+
50
+
## 8.5 useCallback 설명 수정
51
+
52
+
`useCallback`에 대한 설명이 적절치 않아 수정합니다. 개정판을 작성할 당시 Hooks가 나온지 얼마 안됐을때 작성된거라, 좋지 못한 설명이 들어갔던 것 같습니다. 사실 함수는 매번 생성이 되는거고 이전에 만든 함수를 재사용 할 수 있는 것에 의미를 둬야 하는 Hooks인데, 책에서 설명을 할 때 함수를 "필요할 때만 생성"한다고 표현했었습니다. 추가적으로, `useMemo`와 비슷하지만 사실상 동일한 코드가 아니므로 해당 설명을 제거하였습니다.
53
+
54
+
무조건 습관적으로 `useCallback`을 매번 사용하는 것 보다, 실질적으로 최적화를 할 수 있는 상황에서만 사용하는 것이 좋습니다.
0 commit comments