【发布时间】:2018-10-21 07:18:41
【问题描述】:
我正在为我的 UI 创建 v2。我想保留旧的 UI 并进行更改。所以我想保持新组件的名称与旧组件相同。
所以可以有 2 个不同的组件同名吗?
【问题讨论】:
-
你的意思是相同的选择器名称或类名?你能提供一些例子吗?
-
选择器和类名。但是具有相同的选择器可能会产生一些冲突
标签: angular components
我正在为我的 UI 创建 v2。我想保留旧的 UI 并进行更改。所以我想保持新组件的名称与旧组件相同。
所以可以有 2 个不同的组件同名吗?
【问题讨论】:
标签: angular components
你可以做的是有两个类,一老一新,当然有语义命名而不是新旧,并且在主组件类中,有在两者之间切换的逻辑。
或者你可以作为别名导入,这意味着两个类可以是相同的名称,但你使用它的地方显然必须不同:
import { MyComponent as OldComponent } from '../old/my-component'
import { MyComponent} from '../new/my-component'
【讨论】:
创建 v2 的最佳做法是使用 version control 从旧 UI 分支或重构应用以改用新 UI。在任何情况下,我都不建议创建具有相同名称的组件,尤其是当它们用于相同目的时。这只会让您自己和其他开发人员感到困惑。
话虽如此,如果您需要组件来共享通用逻辑。我建议你让你的组件继承一个基类:
export abstract class BaseComponent implements OnInit {
ngOnInit() {
// Example
}
}
@Component({
selector: 'a-selector'
})
export class NewComponent extends BaseComponent {
}
【讨论】: