그래프/트리의 모든 구성 요소에서 데이터 조각이 필요한 경우 가장 좋은 방법은 각각의 공용 바인딩 가능 속성을 노출하는 것입니다. 자식 구성 요소가 부모에 의해 처리되는 버블 링 이벤트를 전달하도록 허용하고 바인드 가능 속성의 새 값을 설정할 수 있습니다. 부모에서 자식으로 프로퍼티를 바인딩하면 다른 컴포넌트로 "캐스케이드"됩니다. 추가 로직을 호출해야하는 경우
<!-- in root application -->
<Component1 myData="{myData}"/>
대신 공공 VAR의 GET/set 쌍을 정의하고 세터에 논리를 추가 할 수 있습니다 더 나은
[Bindable] private var _myData;
public function set myData(value:Object):void
{
_myData = value;
doSomeLogic();
}
플렉스의 무효화 프레임 워크를 사용하는 것 성능을 최적화하려면
_myDataChanged : Boolean = false;
[Bindable] private var _myData;
public function set myData(value:Object):void
{
if (_myData != value) {
_myData = value;
_myDataChanged = true;
}
invalidateProperties();
}
override protected function commitProperties() : void {
super.commitProperties();
if (_myDataChanged) {
_myDataChanged = false;
doSomeLogic()
}
}
이 패턴은 Flex 프레임 워크를 구성하는 모든 UIComponents의 모든 곳에서 사용됩니다. 요소를 배치하려면 updateDisplayList (...)를 재정의해야 할 수도 있습니다.
아, 그게 내가 필요로하는 해결책이다. 나는 또한 그 무효화 틀을 좋아한다. – KevMo