Angular 4 Lazy Loading

时间:2017-08-01 01:14:22

标签: node.js angular lazy-loading

我正在努力理解这一点,如果有人可以向我解释,我会非常感激。

我的理解是我们不能在没有node.js的角度下进行延迟加载。真的吗?如果没有,请你指点我可以在没有node.js的情况下学习如何做到这一点?

请和谢谢。

2 个答案:

答案 0 :(得分:1)

这不是真的。虽然两者都锚定在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' }
];

要小心,仔细阅读Angular文档,因为有很多"陷阱"懒惰加载。我能想到的一些:

  1. 您只需要在路线中加载模块。试图将它导入你的父模块将否定" laziness"模块,在某些情况下会导致错误。

  2. 延迟加载的模块会导致拆分依赖注入树。换句话说,如果您在父模块和子模块中调用相同的服务,它们将处于不同的上下文中,因此除非您将服务声明为{{{},否则他们不一定会彼此了解彼此。 3}}

  3. 总的来说,这很简单。只需按照文档进行操作即可。

答案 1 :(得分:0)

在我看来,您需要使用angular-cli构建您的角度应用:ng build --prod --env=prod 然后在src文件夹中,angular-cli将在此文件夹中生成dist文件夹您的应用程序已准备好上传到服务器。