Angular 5,工作太多了

时间:2018-02-28 15:17:52

标签: angular angular5

在AngularJS工作了一段时间后,我才开始学习Angular 2/4/5。 我发现Angular 5要复杂得多(对我而言)。 发生了什么:

我想为用户创建一个CRUD。我做的是:

  1. 创建 app-routing.module.ts

  2. 为创建,查看,编辑,列表

  3. 创建了4个组件
  4. 在app-routing.module.ts

    中为以上4个组件添加了4个导入
    import { UserCreateComponent } from 'app/components/user/create/create.component';
    import { UserEditComponent } from 'app/components/user/edit/edit.component';
    import { UserListComponent } from 'app/components/user/list/list.component';
    import { UserViewComponent } from 'app/components/user/view/view.component';
    
  5. 在app-routing.module.ts中添加了4个路径:

    path: 'user/list',
    component: UserListComponent
    
    path: 'user/create',
    component: UserCreateComponent
    
    path: 'user/view/:id',
    component: UserViewComponent
    
    path: 'user/edit/:id',
    component: UserEditComponent
    
  6. 在app.module.ts中再次导入4个组件:

    import { UserCreateComponent } from 'app/components/user/create/create.component';
    import { UserEditComponent } from 'app/components/user/edit/edit.component';
    import { UserListComponent } from 'app/components/user/list/list.component';
    import { UserViewComponent } from 'app/components/user/view/view.component';
    
  7. 声明部分中添加了以下内容:

    UserEditComponent,
    UserListComponent,
    UserViewComponent,
    UserCreateComponent,
    
  8. 有没有更好的做法,我觉得它更复杂,更复杂。

3 个答案:

答案 0 :(得分:1)

您可以尝试延迟加载,只有在调用特定路由模块时才会加载组件。 否则你的代码是正确的,也是在Angular中进行路由的基本方法。

答案 1 :(得分:1)

这是在Angular2中做事的方式。 Angular应用程序只不过是一个组件树。在该树的根目录下,将在启动应用程序时呈现顶级组件。

因为组件是在父/子树中构建的,所以当每个Component呈现时,它会以递归方式呈现其子组件。

因此每个组件都应该有它的组件类(.ts)和模板,并且也应该属于一个模块。最后,必须在使用之前导入组件。使用import的想法很像在Java中导入或者在Ruby中需要:我们从另一个模块中提取这些依赖项,并使这些依赖项可用于此文件。

答案 2 :(得分:0)

@Ashutosh,有几种选择,例如您可以将组件减少到只有两个,UserListComponent和UserEditComponent(即使您只能有一个)。然后,在ngOnInit中检查ActivatedRoute或路由器

encoding_type=EncodingType.UTF16