2017-02-06 1 views
1

docs에서 React는 구성 요소가 입력으로 소품을 가져오고 요소를 출력하기 때문에 실제로 인스턴스를 고려하지 않는다고 말합니다. 다른 프레임 워크가 인스턴스를 작성한 다음 다른 이벤트를 처리하기 위해 DOM에 연결하는 방법의 맨 위에 예제가 있습니다. 그러나 나는 이것이 React가하는 것과 어떻게 다른지 이해하지 못합니다.React 구성 요소 인스턴스가 다른 프레임 워크와 다른 점은 무엇입니까?

React에서 구성 요소에 new을 호출하지 않아도 렌더링하고 동일한 핸들러를 만들어야합니다. 그리고 구성 요소 내부의 this은 여전히 ​​인스턴스를 참조하므로 구성 요소가 렌더링 될 때마다 React를 생성하지 않아도됩니다 (한 번에 여러 번 렌더링되는 <li> 내부의 구성 요소 일지라도).

전통적인 프레임 워크는 각각의 DOM 노드에 연결하기 위해 동일한 컴포넌트의 인스턴스를 여러 개 만들어야합니다. 그렇지 않은 것은 React도 마찬가지입니다. 한 구성 요소가 여러 개의 this을 어떻게 추적 할 수 있습니까?

답변

1

, 반작용은 구성 요소예를내부적으로을 만듭니다. new을 사용하는 것에 대해 걱정할 필요가 없습니다.

는 요소 그냥 평범한입니다 반작용 자바 스크립트 객체 당신이 (type가 문자열 인 경우, React.Component 또는 HTML 요소)를 렌더링 할 원하는 설명하는. docs 가입일

:

요소는 실제 인스턴스 아니다. 대신 화면에보고 싶은 내용을 확인하십시오. . 요소에 메소드를 호출 할 수 없습니다. 그것은 두 개의 필드를 가진 불변의 설명 객체입니다 : type : (string | ReactClass)와 props : Object1.

+0

그래서 본질적으로 당신은 모든 책임을 React에 전달합니다 - 인스턴스의 생성과 삭제, 즉 – stackjlei

+1

@stackjlei입니다! – mrlew

1

차이점은 개발자이 코드를 작성하지 않아도된다는 것입니다. 렌더 메소드와 콜백을 작성하고 React가 DOM 요소와 컴포넌트 인스턴스를 생성하고 함께 연결하는 것에 대해 걱정할 수 있도록하자. 실제로

관련 문제