그땐 몰랐지만 지금은 알것같은(..) React와 관련이 있는 용어들. (React와 관련되지 않은 용어도 있을 수 있습니다.)
내 나름대로 정리해보려고 한다.
생각나는대로 추가할 것
[마지막 업데이트 230917]
⛔️ 주의사항
- 토막지식이므로 관련한건 따로 서칭할 것.
- 대화할때 해당 용어를 쓰는지는 회바회, 팀바팀
Stateful vs Stateless
stateless 한 값은 컴포넌트 외부에 선언해주세요.
네?
정의
React 컴포넌트에서 `state` 를 사용하는 경우 Stateful 컴포넌트, state를 Stateful 하다라고 한다.
반대는 그럼 `Stateless` 라 부른다.
뭐가 문제였는데?
state는 상태가 바뀔때마다 컴포넌트의 구성요소가 재렌더링 되어야 하므로, 당연히 컴포넌트 내부에 위치하는게 맞지만,
stateless한 값은 재렌더링에 상관없이 불변한 값이다.
만약 렌더링이 잦은 컴포넌트내부에 위치한다면 렌더링이 일어날 때 마다 stateless한 변수는 계속 새로운 메모리에 해제 및 생성이 일어나는 것. 이라고는 하지만 사실 퍼포먼스상 별 차이는 없다고 한다. 하하.
가독성이나 함수의 재사용을 위해서라면 외부에 선언하는 것이 좋다고 한다. [참고]
Prop Drilling
Prop drilling이 너무 심하네요.
예? 프롭스..뭐요?
정의
React에선 상위 컴포넌트에서 선언한 값들을 자식 컴포넌트의 prop로 넘겨줄 수가 있는데, 이것을 `prop drilling` 이라 한다.
즉, 상위에서 하위로 데이터를 전달하는 과정이라 보면 된다.
뭐가 문제였는데?
props를 자식의 자식의 자식의 자식의...그 자식의 컴포넌트로 계속 넘겨준다면 코드파악도 어렵고,
그 props가 statefull 한 값이라면, 변화가 일어날 때 마다 props를 받는 자식컴포넌트들은 props를 받았다는 것 하나만으로 렌더링이 일어난다.
즉, props를 depth가 깊게 전달하지 말라는 것.
nullish / nullable / optional
nullable한 컬럼들 not null로 변경해주세요
정의
optional?: string | undefined;
nullable: string | null;
nullish?: string | null | undefined;
한분이 찰떡처럼 설명한 스니펫이 있어 가져왔다. [참고]
- optional : 해당 컬럼이 필수값은 아님. 그러므로 해당 타입이 undefined일 수 있다.
- nullable: 해당 컬럼은 필수값이지만, 타입이 Null이 할당될 수 있다.
- nullish: optional + nullable (null or undefined)
보통 값 관점에서 null , undefined한 값을 퉁쳐서 nullish 하다 하고
컬럼관점에서 nullable, optional 을 쓰는 것 같다.
null coalesce operator / null coalescing ??
const name = value ? value : 'not name';
null coalescing 으로 대체해주세요.
정의
nullish 한 값일때 우측 값으로 대입하는 연산자 [참고]
const name = value ?? 'not name';
Optional Chaining
정의
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah',
},
};
const dogName = adventurer.dog?.name;
console.log(dogName);
// Expected output: undefined
nullish한 객체를 참조해야할 때 쓴다 [참고]
Custom hook
custom hook으로 추출할 수 있는지 검토해주세요.
유사한 동작을 가진 로직을 여러 컴포넌트에서 쓰이고 있을 때, 해당 동작을 추상화하여 custom hook으로 만들 수 있다.
즉 추출해서 추상화한 hook을 만들라는 것. [참고]
'🌳Frontend > react' 카테고리의 다른 글
Next.js에서 Router.push VS next/link (1) | 2023.10.02 |
---|---|
가장 좋은 React Custom hook 구상하기 (0) | 2023.09.17 |
React에서 UI와 로직 분리하기 - Headless component (0) | 2023.09.17 |
[React] useRef 알아보기 - useRef 와 ref 의 개념 및 사용 (0) | 2023.09.07 |
[Next.js] useRouter 의 Shallow Routing (0) | 2023.09.06 |
그땐 몰랐지만 지금은 알것같은(..) React와 관련이 있는 용어들. (React와 관련되지 않은 용어도 있을 수 있습니다.)
내 나름대로 정리해보려고 한다.
생각나는대로 추가할 것
[마지막 업데이트 230917]
⛔️ 주의사항
- 토막지식이므로 관련한건 따로 서칭할 것.
- 대화할때 해당 용어를 쓰는지는 회바회, 팀바팀
Stateful vs Stateless
stateless 한 값은 컴포넌트 외부에 선언해주세요.
네?
정의
React 컴포넌트에서 state
를 사용하는 경우 Stateful 컴포넌트, state를 Stateful 하다라고 한다.
반대는 그럼 Stateless
라 부른다.
뭐가 문제였는데?
state는 상태가 바뀔때마다 컴포넌트의 구성요소가 재렌더링 되어야 하므로, 당연히 컴포넌트 내부에 위치하는게 맞지만,
stateless한 값은 재렌더링에 상관없이 불변한 값이다.
만약 렌더링이 잦은 컴포넌트내부에 위치한다면 렌더링이 일어날 때 마다 stateless한 변수는 계속 새로운 메모리에 해제 및 생성이 일어나는 것. 이라고는 하지만 사실 퍼포먼스상 별 차이는 없다고 한다. 하하.
가독성이나 함수의 재사용을 위해서라면 외부에 선언하는 것이 좋다고 한다. [참고]
Prop Drilling
Prop drilling이 너무 심하네요.
예? 프롭스..뭐요?
정의
React에선 상위 컴포넌트에서 선언한 값들을 자식 컴포넌트의 prop로 넘겨줄 수가 있는데, 이것을 prop drilling
이라 한다.
즉, 상위에서 하위로 데이터를 전달하는 과정이라 보면 된다.
뭐가 문제였는데?
props를 자식의 자식의 자식의 자식의...그 자식의 컴포넌트로 계속 넘겨준다면 코드파악도 어렵고,
그 props가 statefull 한 값이라면, 변화가 일어날 때 마다 props를 받는 자식컴포넌트들은 props를 받았다는 것 하나만으로 렌더링이 일어난다.
즉, props를 depth가 깊게 전달하지 말라는 것.
nullish / nullable / optional
nullable한 컬럼들 not null로 변경해주세요
정의
optional?: string | undefined;
nullable: string | null;
nullish?: string | null | undefined;
한분이 찰떡처럼 설명한 스니펫이 있어 가져왔다. [참고]
- optional : 해당 컬럼이 필수값은 아님. 그러므로 해당 타입이 undefined일 수 있다.
- nullable: 해당 컬럼은 필수값이지만, 타입이 Null이 할당될 수 있다.
- nullish: optional + nullable (null or undefined)
보통 값 관점에서 null , undefined한 값을 퉁쳐서 nullish 하다 하고
컬럼관점에서 nullable, optional 을 쓰는 것 같다.
null coalesce operator / null coalescing ??
const name = value ? value : 'not name';
null coalescing 으로 대체해주세요.
정의
nullish 한 값일때 우측 값으로 대입하는 연산자 [참고]
const name = value ?? 'not name';
Optional Chaining
정의
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah',
},
};
const dogName = adventurer.dog?.name;
console.log(dogName);
// Expected output: undefined
nullish한 객체를 참조해야할 때 쓴다 [참고]
Custom hook
custom hook으로 추출할 수 있는지 검토해주세요.
유사한 동작을 가진 로직을 여러 컴포넌트에서 쓰이고 있을 때, 해당 동작을 추상화하여 custom hook으로 만들 수 있다.
즉 추출해서 추상화한 hook을 만들라는 것. [참고]
'🌳Frontend > react' 카테고리의 다른 글
Next.js에서 Router.push VS next/link (1) | 2023.10.02 |
---|---|
가장 좋은 React Custom hook 구상하기 (0) | 2023.09.17 |
React에서 UI와 로직 분리하기 - Headless component (0) | 2023.09.17 |
[React] useRef 알아보기 - useRef 와 ref 의 개념 및 사용 (0) | 2023.09.07 |
[Next.js] useRouter 의 Shallow Routing (0) | 2023.09.06 |