Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当导航到组件B时,角度组件A是否被破坏?_Javascript_Angular - Fatal编程技术网

Javascript 当导航到组件B时,角度组件A是否被破坏?

Javascript 当导航到组件B时,角度组件A是否被破坏?,javascript,angular,Javascript,Angular,假设组件A显示在中,并且用户导航时在同一中显示组件B。ComponentA实例是否随后被销毁,以便在用户再次导航回ComponentA时创建ComponentA的新实例 如果ComponentA实现了OnInit,这将导致ComponentA.OnInit()被调用两次 是的,你是对的。如果“RouterOutlet”中的任何组件是通过角度路由加载的,那么当另一个组件加载时,当前组件在调用其最后一个回调方法ngondstroy()后将被销毁 是的,你是对的。如果“RouterOutlet”中的任

假设
组件A
显示在
中,并且用户导航时在同一
中显示
组件B
ComponentA
实例是否随后被销毁,以便在用户再次导航回
ComponentA
时创建
ComponentA
的新实例


如果
ComponentA
实现了
OnInit
,这将导致
ComponentA.OnInit()
被调用两次

是的,你是对的。如果“RouterOutlet”中的任何组件是通过角度路由加载的,那么当另一个组件加载时,当前组件在调用其最后一个回调方法ngondstroy()后将被销毁

是的,你是对的。如果“RouterOutlet”中的任何组件是通过角度路由加载的,那么当另一个组件加载时,当前组件在调用其最后一个回调方法ngondstroy()后将被销毁

如果componentA被另一个组件替换,则调用componentA的
ngondstroy()
方法。但是componentA创建的东西不会自动销毁。如果您想清理componentA创建的东西,您必须自己在componentA的
ngondstroy()
方法中编写代码


例如,如果您在
ngOnInit()
中订阅了一些无休止的观测值,则需要在
ngondestory()
中取消订阅,否则,即使在另一个组件替换了组件A之后,订阅仍将处于活动状态。

如果组件A被另一个组件替换,则
ngondestory()
调用componentA的方法。但是componentA创建的东西不会自动销毁。如果您想清理componentA创建的东西,您必须自己在componentA的
ngondstroy()
方法中编写代码

例如,如果您在
ngOnInit()
中订阅了一些无休止的观测值,则需要在
ngondestory()
中取消订阅,否则,即使在另一个组件替换了组件A之后,订阅仍将处于活动状态