[javascript] Aurelia에서의 모듈간 통신 방법
Aurelia는 모듈 간 효과적인 통신을 지원하는 강력한 프레임워크입니다. 여러 모듈 간의 통신은 프로젝트의 유연성과 확장성을 높일 수 있습니다.
Pub/Sub 패턴
Aurelia 앱에서 모듈 간 통신을 구현하는 일반적인 방법 중 하나는 Pub/Sub (발행/구독) 패턴을 사용하는 것입니다. 이 패턴을 사용하면 이벤트의 발생 및 구독을 통해 모듈 간의 통신을 가능하게 할 수 있습니다.
// app-event.js
import { EventAggregator } from 'aurelia-event-aggregator';
export class AppEvent {
static inject = [EventAggregator];
constructor(eventAggregator) {
this.eventAggregator = eventAggregator;
}
publish(event, data) {
this.eventAggregator.publish(event, data);
}
subscribe(event, callback) {
return this.eventAggregator.subscribe(event, callback);
}
dispose(subscription) {
subscription.dispose();
}
}
위 예제는 aurelia-event-aggregator
라이브러리를 사용하여 Pub/Sub 패턴을 구현하는 방법을 보여줍니다. publish
메서드를 사용하여 이벤트를 발행하고, subscribe
메서드를 사용하여 해당 이벤트를 구독할 수 있습니다.
커스텀 이벤트
Aurelia에서는 커스텀 이벤트를 통해 모듈 간 통신을 구현할 수도 있습니다.
// app-component.js
import { bindable } from 'aurelia-framework';
export class AppComponent {
@bindable message;
sendMessage() {
this.element.dispatchEvent(new CustomEvent('message-sent', { detail: this.message }));
}
}
위의 코드에서는 CustomEvent
를 사용하여 ‘message-sent’ 커스텀 이벤트를 생성하고 해당 이벤트를 발생시킵니다.
Conclusion
Aurelia에서는 Pub/Sub 패턴 및 커스텀 이벤트를 사용하여 모듈 간의 효과적인 통신을 구현할 수 있습니다. 이러한 방법을 통해 코드의 재사용성을 높이고 모듈 간의 결합도를 낮출 수 있습니다.
참고 문헌: