728x90
반응형
컴포넌트 최적화
이 프로젝트는 간단하기에 최적화를 할 필요는 없지만 공부를 위해 🔥🔥
자원 낭비되는 부분을 없애기 위한 컴포넌트 최적화
👉값을 입력할 때 마다 render 함수가 실행됨
👉DOM에 변화가 일어나는 것은 아니지만 가상DOM에 rendering하는 자원이 미세하게 낭비되고 있음
src/components/ToDoItemList.js
import React, { Component } from 'react';
import ToDoItem from './ToDoItem';
class TodoItemList extends Component {
shouldComponentUpdate(nextProps, nextState) {
return this.props.todos !== nextProps.todos;
}
render() {
const { todos, onToggle, onRemove } = this.props;
const todoList = todos.map(
({id, text, checked}) => (
<ToDoItem
id={id}
text={text}
checked={checked}
onToggle={onToggle}
onRemove={onRemove}
key={id}
/>
)
);
return (
<div>
{todoList}
</div>
);
}
}
export default ToDoItemList;
src/components/ToDoItem.js
import React, { Component } from 'react';
import './ToDoItem.css';
class ToDoItem extends Component {
shouldComponentUpdate(nextProps, nextState) {
return this.props.checked !== nextProps.checked;
}
render() {
(...)
}
}
export default ToDoItem;
반응형
'프로그래밍 > React' 카테고리의 다른 글
React와 Redux (0) | 2021.04.01 |
---|---|
Redux 소개 (0) | 2021.03.31 |
to do list 만들기_6 (체크 하기/풀기, 아이템 제거하기) (0) | 2021.03.26 |
to do list 만들기_5 (초기 state 정의와 Form 기능 구현) (0) | 2021.03.25 |
to do list 만들기_4 (ToDoItemList, ToDoItem 컴포넌트 만들기) (0) | 2021.03.23 |