2015-01-25 4 views
4

Om을 사용하면 앱 상태의 관련 부분을 자식 구성 요소에 전달하는 것이 앱 상태를 통과하지 않고 참조 커서를 사용하는 것과 실질적으로 같은 것으로 보입니다. 앱 상태를 체인을 통과시켜 넘기는 것에 대한 리퍼 커서의 사용 사례는 무엇입니까?App Atom 대 Ref-Cursors of Om

옴 github 저장소에 대한 3 가지 자습서와 개념 개요를 읽었지만 실제로이 질문에 대한 답을 찾을 수 없습니다. 하나 또는 둘 다를 사용할 수 있고 동일한 것을 수행 할 수있는 것처럼 보입니다 (하나는 (defn blah [_ owner] ...)으로 구성 요소를 정의하고 참조 커서를 사용하거나 구성 요소를 정의 함) (defn blah [relevent-state owner] ...)

참조 커서를 사용할 때 명확하게 할 수 있습니까? 당신이 그것을 업데이트 할 때, 관찰자 ​​모두가 호출되는 때문에 단순히 해당 구성 요소로 응용 프로그램 상태의 일부를 통과 반대와 같은 구성 요소 내부에?

답변

1

을이 질문은 꽤 오래,하지만 난 ' 그것을 줄께.

나는 주요 사용 - c를 믿는다. ref-cursor를위한 ase는 컴포넌트로부터 글로벌 애플리케이션 상태의 모듈화 및 분리를 촉진하는 것입니다. 구성 요소의 범위를 의존하는 데이터만으로 제한합니다.

일반적으로 애플리케이션 상태와 변경 콜백을 소품을 통해 구성 요소 트리로 전달합니다. 결과적으로 구성 요소 계층은 응용 프로그램 상태의 "모양"과 밀접하게 연결됩니다. 구성 요소 계층 구조는 상태 1 : 1과 일치해야합니다. 그렇지 않으면 많은 구성 요소에 큰 하위 집합의 데이터와 콜백이 제공됩니다. 하위 구성 요소는 실제로 사용하지 않을 수도 있습니다. 전역 적으로 구성 요소 체인을 아래로 내려서 구성 요소가 더 이상 액세스 할 수 없게됩니다. 이러한 구성 요소는 상태를 전달하기위한 채널로 사용되며, 비즈니스 상태를 알 수없는 애플리케이션 상태에 노출되기 때문에 이상적이지 않습니다. 당신은 결합의 위험을 감수하고 모듈성을 잃습니다.

커서를 사용하면 탑재시 각 구성 요소가 구성 요소 종속성을 명시 적으로 지정합니다. 커서는 응용 프로그램 상태에 대한 블랙 박스입니다. 구성 요소 자체는 응용 프로그램 내부의 위치를 ​​결코 알 수 없습니다. 전달되는 모든 일시적인 데이터에 대해 걱정할 필요없이 응용 프로그램 상태의 어느 곳에서나 구성 요소의 종속성을 설명 할 수있는 완전한 유연성이 있습니다. 임의로 깊은 계층 구조로 업데이트 콜백을 전달하지 않고도 단방향 데이터 흐름을 얻을 수 있습니다. 최종 결과물은 우수한 컴포넌트 구획화 및 모듈성입니다. 보너스로 변경 사항을 관찰 할 수있는 응용 프로그램 상태로의 단일 지점이 생겼습니다!

1

나는 그것을 사용.

+0

사용 예를 들어 주셔서 감사합니다. 그러나 이것은 실제로 앱 상태의 일부를 전달하는 것 이상의 참조 커서에 대한 허용 된 * 사용 사례와 관련하여 제 질문에 대한 대답이 아닙니다. –

관련 문제