我在我们的应用程序中使用Angular7.x。 行为主题的使用数量不断增加。 会影响应用程序性能吗? 如果是这样,请提供BehaviourSubjects的其他任何替代方法。
答案 0 :(得分:0)
如果您不取消订阅BehaviourSubject,则有可能发生内存泄漏,因此您也可以使用 @Output
这是示例
**shared-service**
import { Injectable, Output, EventEmitter } from '@angular/core';
export class SharedService {
@Output() sendData: EventEmitter<any> = new EventEmitter();
}
**component-one**
import { SharedService } from './shared.service';
export class ComponentOneComponent implements OnInit {
constructor(public sharedService: SharedService) {
this.emitData();
}
emitData() {
// this component is emit the data
this.sharedService.sendData.emit('message from component one');
}
}
**component-two**
import { SharedService } from './shared.service';
export class ComponentTwoComponent implements OnInit {
constructor(public sharedService: SharedService) {
}
ngOnInit() {
this.sharedService.sendData.subscribe(data=> {
console.log(data); // here you can get the data from component one
});
}
}
希望它能对您有所帮助。