fixture.detectChange是如何触发Component view的ngOnInit钩子的
生活随笔
收集整理的這篇文章主要介紹了
fixture.detectChange是如何触发Component view的ngOnInit钩子的
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在Angular單元測試it實現(xiàn)里設(shè)置斷點,從運行時的上下文,能看出jasmine單元測試,運行在特殊的zone上:
一旦我執(zhí)行上圖116行的fixture.detectChanges():
最后就會轉(zhuǎn)而調(diào)用我自己Component里的ngOnInit鉤子:
Zone.prototype.run:
這個setNative應(yīng)該就是window.setTimeout patch之后的版本:
這里還能看到XMLHttpRequest.send也被patch了:
patchMethod的實現(xiàn):
ZoneDelegate.invoke會調(diào)用tickRootContext,里面會調(diào)用renderComponentOrTemplate:
detectChange最后會refreshView:
從而執(zhí)行view的Component的各種hook:
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的fixture.detectChange是如何触发Component view的ngOnInit钩子的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为p30拍照怎么显示手机型号
- 下一篇: 怎么下载pdf文件(pdf文件怎么添加目