Angular 4懒加载
我试图理解这个,所以如果有人可以请给我解释,我会非常感激。Angular 4懒加载
我的理解是,我们不能在没有node.js的情况下在角度上进行延迟加载。真的吗?如果没有,请您指点我可以了解如何在没有node.js的情况下进行操作的地方?
请和谢谢。
这是不正确的。虽然两者都是使用Javascript,但Angular和Node.js是两个独立的技术,有两个独立的关注点。 Node.js是一个后端架构,用于处理和传递数据,而Angular是一种前端技术,主要关注如何为用户提供一个网关来与通过GUI提供数据的服务进行交互。
在Angular懒加载模块通过路由器as documented here完成。基本上你不导入你要延迟加载,直到该模块的路径已被激活的模块,例如:
export const routes: Routes = [
{ path: '', redirectTo: 'contact', pathMatch: 'full'},
{ path: 'crisis', loadChildren: 'app/crisis/crisis.module#CrisisModule' },
{ path: 'heroes', loadChildren: 'app/hero/hero.module#HeroModule' }
];
要小心,并阅读角文档仔细,因为有不少“陷阱“与延迟加载。我能想到的一些:
您只需要在路由中加载模块。尝试将其导入父模块将会否定模块的“懒惰”,并且在某些情况下会导致错误。
延迟加载模块导致依赖注入树被拆分。换句话说,如果您在父模块和子模块中调用相同的服务,它们将处于不同的上下文中,因此它们不一定会彼此知晓,除非您声明服务为forRoot(), more on that here.
总的来说,这样做很简单。只需按照文档。
感谢您的回应。我都知道这一点。有一点我有它实现,它工作正常。为什么我认为它没有node.js是行不通的,它在我的开发机器上工作得很好,但是一旦我将它发布到我的托管站点(没有node.js),应用程序就停止工作全部一起。我发布应用程序时是否缺少我需要的东西? – Samkan
在我看来你需要使用角CLI来建立你的角度应用:ng build --prod --env=prod
然后在src
文件夹角CLI会生成此文件夹dist
文件夹中的应用程序准备上传到服务器。
你真的用Google吗? – Milad
https://namitamalik.github.io/Lazy-Loading-with-Angular2-Routing/ – Milad
有一百万篇关于这方面的文章,wtf – Milad