리액트 공식문서 '문서>주요개념' 정리

Robin·2023년 2월 18일
0

React

목록 보기
7/7

❗️공식문서 단순정리


  • 사용자 정의 컴포넌트는 반드시 대문자로 시작해야합니다. 그렇지 않으면 DOM 태그로 인식한다.
  • props의 이름은 사용될 context가 아닌 컴포넌트 자체의 관점에서 짓는 것을 권장합니다.
  • props는 읽기 전용입니다. React는 매우 유연하지만 한 가지 엄격한 규칙이 있습니다. 모든 React 컴포넌트는 자신의 props를 다룰 때 반드시 순수 함수처럼 동작해야 합니다.
  • State는 props와 유사하지만, 비공개이며 컴포넌트에 의해 완전히 제어됩니다.
    (이 때문에 state로 관리하는 것을 제어 컴포넌트라 함)

  • 생명주기: 많은 컴포넌트가 있는 애플리케이션에서 컴포넌트가 삭제될 때 해당 컴포넌트가 사용 중이던 리소스를 확보하는 것이 중요합니다.
  • componentDidMount() 메서드는 컴포넌트 출력물이 DOM에 렌더링 된 후에 실행됩니다.

  • 컴포넌트는 자신의 state를 자식 컴포넌트에 props로 전달할 수 있습니다.
  • 일반적으로 이를 “하향식(top-down)” 또는 “단방향식” 데이터 흐름이라고 합니다. 모든 state는 항상 특정한 컴포넌트가 소유하고 있으며 그 state로부터 파생된 UI 또는 데이터는 오직 트리구조에서 자신의 “아래”에 있는 컴포넌트에만 영향을 미칩니다.
  • State 소유 컴포넌트: 애플리케이션이 가지는 각각의 state에 대해서
    • state를 기반으로 렌더링하는 모든 컴포넌트를 찾으세요.
    • 공통 소유 컴포넌트 (common owner component)를 찾으세요. (계층 구조 내에서 특정 state가 있어야 하는 모든 컴포넌트들의 상위에 있는 하나의 컴포넌트).
    • 공통 혹은 더 상위에 있는 컴포넌트가 state를 가져야 합니다.
    • state를 소유할 적절한 컴포넌트를 찾지 못하였다면, state를 소유하는 컴포넌트를 하나 만들어서 공통 소유 컴포넌트의 상위 계층에 추가하세요.

  • React의 이벤트는 소문자 대신 캐멀 케이스(camelCase)를 사용합니다.
  • JSX를 사용하여 문자열이 아닌 함수로 이벤트 핸들러를 전달합니다.
function MyButton() {
  function handleClick() {
    alert('You clicked me!');
  }

  return (
    <button onClick={handleClick}>
      Click me
    </button>
  );
}
  • Notice how onClick={handleClick} has no parentheses at the end! Do not call the event handler function: you only need to pass it down. React will call your event handler when the user clicks the button.

  • 앱을 만들 때 하향식(top-down)이나 상향식(bottom-up)으로 만들 수 있습니다. 다시 말해 계층 구조의 상층부에 있는 컴포넌트부터 만들거나 하층부에 있는 컴포넌트 부터 만들 수도 있습니다. 간단한 예시에서는 보통 하향식으로 만드는 게 쉽지만 프로젝트가 커지면 상향식으로 만들고 테스트를 작성하면서 개발하기가 더 쉽습니다.

  • 어떤 게 state가 되어야 하는 지 살펴봅시다. 이는 각 데이터에 대해 아래의 세 가지 질문을 통해 결정할 수 있습니다.
    1. 부모로부터 props를 통해 전달됩니까? 그러면 확실히 state가 아닙니다.
    2. 시간이 지나도 변하지 않나요? 그러면 확실히 state가 아닙니다.
    3. 컴포넌트 안의 다른 state나 props를 가지고 계산 가능한가요?(계산해서 도출해낼 수 있는 값인가?) 그렇다면 state가 아닙니다.
profile
Always testing, sometimes dog walking

0개의 댓글

관련 채용 정보