Angular: 在 Lifecycle Hooks 文档中,不清楚在不使用输入时不调用 ngOnChanges

创建于 2018-03-27  ·  1评论  ·  资料来源: angular/angular

我正在提交一个...

[x] Documentation issue or request

当前行为

Lifecycle Hooks页面说到ngOnChanges()

ngOnInit()以及每当一个或多个数据绑定输入属性更改时调用

这关于ngOnInit()

在第一个ngOnChanges()之后调用 [...]

从该描述中不清楚如果使用该组件而没有_提供任何输入, ngOnChanges()将_不_被调用。

预期行为

文档应该更清楚地说明ngOnChanges()行为:特别是,如果一个组件声明了输入但没有使用它们,那么ngOnChanges()将_not_ 在ngOnInit()之前被调用

使用说明最小化问题的重现

https://stackblitz.com/edit/angular-ngonchanges

改变行为的动机/用例是什么?

从文档的 来看,人们可能会有这样的印象:对于具有输入的组件, ngOnChanges()总是在ngOnInit()之前首先被调用,即使这些输入不被父模板/组件使用。

这可能会导致不那么明显的意外错误,例如,如果ngOnInit()ngOnChanges()中的组件的启动逻辑重复,则将其删除。

docs feature medium

最有用的评论

这也让我措手不及。

该文档确实像 ngOnChanges 是 ngOnInit 触发的要求一样,它也没有明确说明如果没有绑定数据,ngOnChanges 可能根本不会触发。 在现实中,它只是描述了它们被调用的顺序,而不是它们之间是否被触发。

能解决这个问题就好了。

>所有评论

这也让我措手不及。

该文档确实像 ngOnChanges 是 ngOnInit 触发的要求一样,它也没有明确说明如果没有绑定数据,ngOnChanges 可能根本不会触发。 在现实中,它只是描述了它们被调用的顺序,而不是它们之间是否被触发。

能解决这个问题就好了。

此页面是否有帮助?
0 / 5 - 0 等级