老师,这部分我不是很清楚,所以问题很多。
一,这些钩子函数,如果我们不写在自己的程序中,它们还会运行吗?例如脏值检测,如果不写在程序中,我的理解是由于是系统框架完成,所以脏值检测还是会运行,但是我们不能再在这个过程中主动添加内容了。
二,初始化的概念。我把它和构造函数实例化混淆在一起了,所以理解起来很困难。从构造到初始化,到底是什么关系,时间上的先后,还是逻辑上有关系?
实例化的过程中只是建立的一个属性都是空值的实例吗?如果是空值的话,那属性的值是什么时候赋进组件的?所有的属性是空值(undefined)吗?还是只有输入属性是空值?ngOnChanges()第一次比较的值,分别是什么时候的值?
三,渲染也请老师讲解以下,渲染和加载是同一个概念吗?有什么异同?实例化之后,就会渲染在界面吗?那属性是undefined的时候,界面显示什么呢?其实我不太明白,我们的code是如如何呈现的,过程和逻辑。
四,组件脏值检测,是angular进行的,那它是什么时候发生?而且是多次被触发,那是多频繁发生,或者什么触发脏值检测?
为什么最开始ngOnChanges()会被触发,来比较输入属性,这时输入属性改变了,为什么没触发脏值检测呢?
ngAfterViewChecked 只是在子视图的绑定元素被检测时才被调用。这里“被检测”是如何被触发的,是子视图的绑定元素发生变化,然后触发检测,之后会运行我们写在ngAfterViewChecked 里的code吗?
问题很多,可能我对某些内在的逻辑还是没有理解,请老师讲解。先谢谢您了。