背景
启动ReactJS组件的常规方法是:
Mills: 1486143107
Seconds: 1486143
Milliseconds since midnight: 1486143107
Seconds since midnight: 0
启动Angular2组件的常规方法是:
ReactDOM.render(<MyComponent />, document.getElementById('root'));
MyModule的MyComponent在'declarations'和'bootstrap'下注册。 MyModule也可能包含一些服务。 MyComponent本身定义了HTML选择器。
问题
Angular2方式调用了一些ReactJS方式没有的问题:
(对于你的答案,考虑它是否在angular2执行上下文之外或之内工作,如果这有所不同)
答案 0 :(得分:0)
1。
您不希望重用RootComponent,因为这会导致堆栈溢出异常。这会发生,因为RootComponent(显然)是你的应用程序root。将RootComponent放在RootComponent中会导致永远不会停止的递归调用。
2。
不确定我是否在这里误解了你,如果我这样做,请发表评论,我会再次尝试解释。
您可以在RootComponent(以及属于NgModule的任何其他类)中使用任何声明的服务。角度中的每个组件都定义了您可以使用的生命周期钩子(https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html)。例如,您可以在RootComponent初始化之前使用您的服务,如果这是您感兴趣的内容。请参阅此示例:
import { Component, OnInit } from '@angular/core';
import { MyService } from '../Shared/my-service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
constructor(private _service: MyService) {
// This is executed before ngOnInit()
this._service.doStuff();
}
ngOnInit() {
// Here we can do more stuff when the component is "starting"
this._service.doMoreStuff();
}
}