Open beecomci opened 3 years ago
React는 2가지를 이용해서 DOM 트리 탐색 알고리즘의 복잡도를 O(n)으로 줄임
// 마지막 <li>third</li> 만 추가되면 됨
<ul>
<li>first</li>
<li>second</li>
</ul>
// 리스트 맨 앞에 노드가 추가되어 전체적인 순서가 달라져서 모든 자식 노드들을 변경해야함 -> 리소스 낭비
- 그래서 반복되는 노드에 `key`를 부여
- 그러면 노드 순서가 바뀌어도 기존 노드들은 그대로 두고 바뀐 노드만 렌더링 가능, 서브 트리 내에서만 unique하면 되고 전역에서 unique할 필요 X
- 배열의 index를 key로 사용하는 것은 지양 -> 항목의 순서가 바뀔 경우, key도 바뀌고 그 결과로 component의 state가 의도대로 동작하지 않을 수 있음
React Component 이해 #
Component 구현 2가지 방법
Function Component
// 사용 예시 (react component를 인스턴스화) () => ;
Class Component : Extends React.Component(or React.PureComponent)
props
""
로 바로 전달 - html unescape 됨"<3"
-><3
으로 html decode 되서 노출...
(spread operator) 사용하여 prop 전달 가능 -> component가 커질 수 있기 때문에 spread operator만 봐서는 어떤 값인지 알 수 없으므로 사용 지양key
prop을 꼭 추가한다key
는 해당 array 사이에서 unique 해야 함 (전체 말고 array 내에서만)props.children
으로 전달 #Children
아래와 같은 경우 children이 될 수 있음
function ListOfTenThings() { return (
); }
falsy 값 중 0은 render 되므로 conditional render 할 때 주의