我有一个包含多个延迟加载模块的Agular应用。这些模块各自包含一些不同的组件,这些组件在逻辑上相似但内容不同。例如。每个模块可能都有自己的“主页”组件。
可以完全相同地命名这些组件吗?
对我来说,给每个模块加上模块名似乎太冗长了。特别是当名称开始变长时,考虑到我想在简洁和可读性之间保持平衡。
从功能上讲这似乎不是问题。以以下应用为例。它有2个延迟加载的模块,每个模块包含2个与另一个模块中的组件同名的组件。一个组件通过模块的路径加载,另一个组件通过其选择器加载到第一个组件的模板中。
https://stackblitz.com/edit/angular-comp-name-test
我知道此问题可能被认为是基于观点的,但是是否有任何技术原因不建议这样做? (如果有人要给我dm,我也对意见很感兴趣)
答案 0 :(得分:2)
从技术上讲没有问题,您可以使用相同的名称。就像我有许多将仪表板作为各个模块的组件的模块一样。只要您正确导入它,就可以了。
但是对于较大的应用程序,有时在自动导入时可以导入指向不同的1的指针,然后指向所需的1。这一次发生在我身上,我将add
和list
组件分为2种,因此在自动导入网址时指向错误的组件。
因此,为了清楚起见,如果您保留不同的名称(例如在其前面加上一些名称,以便您知道该名称适用于此模块,等等),否则我们就不能说它是“或不是好习惯”。 / p>
答案 1 :(得分:0)
嘿,您可以在tsconfig.json路径中使用导入别名
"paths": {
"@modules": "app/test-mod(?:\.\d+)?"
},
您可以使用正则表达式来匹配文件名,这样,如果您有多个文件夹,则可以在导入时使用它们在文件名上将它们命名为file1,file2,file3和son,
import('@modules/innerfolder/mymodule.ts')
答案 2 :(得分:0)
我一直在研究一个项目,其中包含5个延迟加载的模块,这些模块的子文件夹中具有数百万个具有相同组件名称的组件。
我仅在开发中遇到的一个很好的理由或问题是,在导入组件时,自动导入确实需要一段时间从不同的模块中导入组件,这样一来,我一直感到困惑,并且错误地完成了一些开发工作组件。
但这已经发生了2次,之后我在导入组件时非常安全
答案 3 :(得分:0)
所以对我来说这是地狱。我在一个更大的项目中工作,并且有一些“FormName”-Klasses。在导入它们时,代码切断了命名空间,这让我很难导入正确的命名空间。 因此,我恳求这成为“不良做法”