moh*_*eli 19 components lazy-loading angular-components angular
延迟加载是一种常用的技术.但是,在Angular中,似乎该技术的粒度级别在模块级别停止.
这意味着您可以在浏览器中加载模块main,然后在特殊场合模块B和C和D可以懒惰加载.
几乎所有关于网络的教程都解释了这一点.但是,有没有办法懒洋洋地加载组件?
考虑这个用户进入应用程序的简单示例,当点击"发票"链接时,URL更改为新路由/invoice/list,进度条显示加载,而invoices包含HTML和JS 的组件正在浏览器中加载,则动态注册主模块,并在相关插座中显示.Angular有可能吗?
小智 8
延迟加载组件是不可能的.这种行为的原因是角度的结构.角度中的组件必须是模块的一部分.Angular模块是一个容器,您可以在其中定义内部存在的所有组件,服务,管道等.在构建应用程序dist时,包含模块中声明的所有依赖项以生成块(转换为js代码).所有直接导入的模块一起形成主块,而标记为延迟加载的模块形成一个单独的块,它位于服务器上,直到相应的路由被命中,并且从客户端调用它.现在组件不会形成块,因此不可能