2013-06-25 1 views
5

Facebook의 React JS 프레임 워크에서 컨텍스트가 작동하는 방식을 이해하는 데 어려움을 겪고 있습니다.Facebook의 React JS 프레임 워크의 컨텍스트

React.createClass에 사양을 전달할 때 특정 메서드 (특히 이벤트 처리기)는 React.autoBind를 사용하여 '콜백을 구성 요소에 바인딩'해야합니다. 다른 방법 (특히 render())에는이 요구 사항이 없지만 여전히 행복하게 'this.props'또는 'this.state'를 참조하십시오.

render() 메소드가 구성 요소가 아닌 경우 'this'의 컨텍스트는 무엇입니까?

답변

3

render과 같은 내부 메서드는 이미 autoBind입니다. 실제로 autoBind으로 전화를 걸어 이러한 메서드를 전달하면 오류가 발생합니다.

사용자 지정 방법의 경우 처음에는 할당 할 컨텍스트에 충실 할 수 있지만 0.4.x (http://facebook.github.io/react/blog/2013/07/02/react-v0-4-autobind-by-default.html)로 변경됩니다.

기본적으로 바운드 this이 대부분 원하는 시간이므로 지금부터 모든 방법 createClass이 기본값으로 autoBind이됩니다. 그들은 콜백 함수 하지 방법로서 DOM에 등록되어 있기 때문에

모든 컴포넌트 프레임 워크
0

(바로 반응하지 않음), 이벤트 핸들러는 this 참조 수동 관리가 필요하다. 반응 0.3에서는 직접 this 참조를 바인딩 할 수도 있고,보다 효율적으로 React.autoBind을 사용할 수도 있습니다. React 0.4에서는 모든 이벤트 핸들러가 프레임 워크에 의해 DOM에 바인딩되므로 더 이상 생각할 필요가 없습니다.

따라서 this 참조는 항상 반응 구성 요소 인스턴스에 대한 참조입니다.