Angular 2中的数据共享方法
问题描述:
Angular 2应用程序中各个组件之间数据共享的问题。目前我的应用程序的结构类似于本教程中的this one,其中Angular引导AppComponent
,并从那里路由多个组件。两个问题:Angular 2中的数据共享方法
在这种情况下,是在
AppComponent
其他2个部件(即仪表板和英雄如教程)的“父”?如果是这样,将所有数据作为变量存储在AppComponent
之内,然后根据需要将数据传递给它的子项是个好主意吗?或者,通过http获取所有数据并将它们缓存在Service中会更好吗?为什么?
谢谢!
答
从我的角度来看,将数据缓存到服务中会更好,因为它对您的应用程序是透明的。而且,隐藏了异步处理。这里有一个例子:你需要小心与其他方法
export class SharedService {
constructor(private http:Http) {
}
getData() {
if (this.cachedData) {
return Observable.of(this.cachedData);
} else {
return this.http.get(...)
.map(res => res.json())
.do((data) => {
this.cachedData = data;
});
}
}
}
的一点是,当数据准备好提供给子组件。
但这取决于您的使用情况。