使用Angular 8,我们可以像这样导入模块:
const routes: Routes = [
{ path: 'customer-list',
loadChildren: () => import('./customers/customers.module').then(m => m.CustomersModule) },
{ path: 'order-list',
loadChildren: () => import('./orders/orders.module').then(m => m.OrdersModule) }
];
并且使用Angular的先前版本,我们可以这样做:
const routes: Routes = [
{ path: 'customer-list',
loadChildren: './customers/customers.module#CustomersModule'},
{ path: 'order-list',
loadChildren: './orders/orders.module#OrdersModule'}
];
具有导入功能的有负载子项与没有导入功能的有负载子项之间的确切区别是什么?
如果丢失或拼写错误,新的标准动态导入语法而不是自定义字符串将可以更好地进行投诉。因此,如果您使用ng upgrade命令来升级应用程序,那么语法上的这种变化将由您来解决。查看此帖子:https://blog.mgechev.com/2019/05/11/dynamic-imports-javascript/
来自angular Deprecated APIs
:“当Angular首次引入惰性路由时,浏览器不支持动态加载其他JavaScript。Angular使用语法loadChildren创建了我们自己的方案:'./lazy/lazy.module#LazyModule'和内置了支持它的工具。现在,许多浏览器都支持ECMAScript动态导入,Angular正在朝着这种新语法发展。“