何时使用 Angular 指令、组件和模块

When to use Angular Directives, Components & Modules

我一直在阅读文档,但似乎仍然对何时应该使用指令或组件感到困惑...

另外,什么时候最好抽象组件并将它们放入模块??

事实上,根据 angular 文档,组件也是一种指令。

There are three kinds of directives in Angular:

1. Components—directives with a template.
2. Structural directives—change the DOM layout by adding and removing DOM elements.
3. Attribute directives—change the appearance or behavior of an element,
   component, or another directive.

当您的要求是创建一组可重用的 html 元素时,您可以使用 components。 例如,如果您的要求是制作一个 CRUD 屏幕,您可以创建一个组件,它包含一个 table、保存、编辑、删除按钮等。 angular 屏幕也是一个组件,也可以由多个组件构成。

如果您的要求是轻松更改现有组件或元素的样式或结构,您可以使用 指令 。想一想 *ngFor,它是一个结构指令,用于构造一组元素。您还可以使用指令为现有组件提供附加功能。例如,您可以创建一个指令,为 table 组件提供过滤或导出支持。

Also, when is it best to abstract components and place them into modules??

将组件等放置到不同的模块中就是 modularity。通过这种方式,您可以将彼此相关的事物分组,并在需要时通过导入它们来重用它们。例如,当您需要 http 调用时,您导入 http-client-module,该模块包含一个 http 客户端和相关内容。模块的另一个好处是您可以通过延迟加载模块来减小应用程序的初始大小,这意味着如果您将组件放在延迟加载的模块中,它只会在屏幕上需要(必须使用/显示)时才下载