[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()
中的组件的启动逻辑重复,则将其删除。
这也让我措手不及。
该文档确实像 ngOnChanges 是 ngOnInit 触发的要求一样,它也没有明确说明如果没有绑定数据,ngOnChanges 可能根本不会触发。 在现实中,它只是描述了它们被调用的顺序,而不是它们之间是否被触发。
能解决这个问题就好了。
最有用的评论
这也让我措手不及。
该文档确实像 ngOnChanges 是 ngOnInit 触发的要求一样,它也没有明确说明如果没有绑定数据,ngOnChanges 可能根本不会触发。 在现实中,它只是描述了它们被调用的顺序,而不是它们之间是否被触发。
能解决这个问题就好了。