容器与表示组件

的基本概念之一Angular应用中的组件架构是在容器和表示组件之间找到正确的平衡。

让我们来定义它们是什么:

  • 表示组件都是可重用的简单UI。比如按钮、对话框、卡片、导航栏等。
  • 容器组件恰恰相反:它们不可重复使用。它们被绑定到一个特定的用例。这些通常是整个屏幕或子屏幕,应用组件等。

从代码的角度来看,容器组件使用服务与后端交互。这样的组件知道使用这些服务从哪里获取数据,然后使用输入将数据提供给它们的子组件,这些子组件是表示组件:

识别这些组件的一个简单方法是演讲组件只有输入和输出,没有依赖注入。容器组件具有依赖注入而且很可能没有输入和输出。

什么时候使用容器组件和表示组件?

假设您的组件很适合成为表示组件,但正在使用服务。在这种情况下,您很可能将该服务注入到它的父容器中,然后使用输入将数据传递给该组件。这样,您的表示组件就可以在其他地方重用,而不必绑定到特定的用例。

当然,就像任何最佳实践一样,也有例外情况需要考虑。有些时候可重用性是有意义的,而有些时候则不然。如果没有意义,不要强迫你的组件归入这些类别,但如果能快速取得成功,可以尝试一下。您的应用程序体系结构(可能还有性能——请继续关注这方面的更多内容)以后会感谢您的。

模板引用变量

欢迎来到我的第一期每日Angular时事通讯!我答应过你的,我会保持简洁。


今天的主题是模板引用变量。我通常称这个特性为“标签语法”,因为这就是它的用法:

              
              
<输入电话占位符“电话号码”/>
代码语言:HTML、XMLxml

下面是我如何使用引用变量来获取输入的值,例如:

              
<按钮点击)=“callPhone (phone.value)”>调用按钮>
代码语言:HTML、XMLxml

电话引用前面创建的带有#phone属性的输入元素。这是模板引用变量。
这些变量可以用来代替ngModel例如。更好的是,它们还可以使用组件和指令!

例如,下面的模板引用变量你好是否可以访问所有的公共属性和方法HelloComponent

              
<app-hello你好>app-hello>
代码语言:HTML、XMLxml

有关更多信息和示例,请阅读另一篇文章这是我的一篇短博客