2014-02-06 4 views
6

에, 당신은 el 속성을 사용하거나 view.setElement()를 호출하여 뷰의 요소를 지정할 수 있습니다 바인딩합니다.React.js : Backbone.js에서 기존 요소

기존 DOM 요소에 React.js 구성 요소를 접선의 동등한 방법이 있습니까?

+0

아마도 도움이 될 것입니다 ... http://stackoverflow.com/questions/27160763/can-a-react-component-manipulate-an-existing-dom-node/34630247#34630247 – gdoumenc

답변

10

나는 백본 지나치게 익숙하지 해요,하지만 당신이 renderComponent 기능을 사용하는 DOM에 요소 반응 후크. 첫 번째 인수는 구성 요소이고 두 번째는 DOM 요소이다 내용을 대체함으로써

가 요소까지 후크 반응 : 코멘트에 주어진 상황에 따라 업데이트

React.renderComponent(<SampleComponent />, document.getElementById('app')); 

요소 자체는 아닙니다. 해당 요소에서 renderComponent() 번을 두 번 이상 호출 할 수 있으며 매번 동일한 diff 알고리즘을 실행합니다. 다른 소품을 전달하거나, 서버에서 사전 렌더링하거나, 다른 구성 요소를 전체적으로 렌더링하려면이 방법이 유용합니다. 구성 요소 자체 내에서 setState()을 사용하는 경우와 마찬가지로 매번 실제 DOM을 업데이트하는 데 동일한 프로세스가 사용됩니다.

+0

여기에 #app의 하위 요소 인 SampleComponent? OP가 기존 요소를 그 구성 요소로 대체하려고합니다. –

+0

@EdwardMSmith 아, 나는 백본의 행동에 익숙하지 않았다. 내 대답을 업데이트 할게. –

+1

감사합니다 - 예 명확히하기 위해, 나는 그것의 기본 정렬 순서는 오름차순 또는 내림차순 여부를 알 필요가있는 선택 메뉴 옵션과 같은 서버 측로드 요소를 말하는 겁니다. 페이지가로드 내가/백본을 사용하여 클라이언트 측 템플릿으로 처음부터 렌더링 또는 구성 요소를 반응하지 않고도 추가적인 행동/데이터를 바인딩에 반응해야 할 때 따라서 요소는 이미 존재합니다. 더 도움이된다면 제 질문을 확장 할 수 있습니다. – cantera

관련 문제