首页 > 解决方案 > 将类属性应用于 Angular 组件元素是不好的做法吗?

问题描述

我不经常看到人们将类名(类属性)放在实际的 Angular 组件上的示例,如下所示:

<app-my-list class="list"></app-my-list>

当类在该范围内很重要时(因此该类不需要在组件的 Sass 文件中),或者如果它们与周围的元素相关,如在 Flexbox flex-container/flex-child 关系中,可以这样做:

<app-parent class="flex-container">
    <app-child class="flex-item"></app-child>
</app-container>

这是不好的做法吗?

标签: cssangular

解决方案


TLDR - 不一定。

按照封装的原则,如果类影响了组件的内部样式,最好给组件传递一个变量,让组件自己决定样式。但是,如果像在您的示例中那样,它是一个更大的布局类,那么使用您正在做的类实际上是一种更好的做法,因为组件不需要了解布局。

另外,为了不重复你自己,我假设这个类对这个组件的某些实例做了一些特殊的事情,而不是全部。如果您向每个组件实例添加相同的类,您将违反“不要重复自己”的规则,这将是一种不好的做法。


推荐阅读