我们可以在角度2中创建具有相同名称的多个组件吗?

时间:2018-05-10 23:06:36

标签: angular components

我正在为我的UI创建一个v2。我想保留旧UI并进行更改。所以我想保持新组件的名称与旧组件相同。

那么可以有2个不同的同名组件吗?

2 个答案:

答案 0 :(得分:1)

你可以做的是拥有一个旧的和一个新的两个类,当然还有新的和旧的语义命名,并且在主组件类中,具有在两者之间切换的逻辑。

或者您可以作为Alias导入,这意味着这两个类可以是相同的名称,但您使用它的地方显然必须是不同的:

import { MyComponent as OldComponent } from '../old/my-component'
import { MyComponent} from '../new/my-component'

答案 1 :(得分:0)

创建v2的最佳方法是使用version control从旧UI进行分支,或者重构您的应用以使用新的UI。在任何情况下,我都不建议创建具有相同名称的组件,尤其是当它们用于相同目的时。它只会让你自己和其他开发者感到困惑。

话虽如此,如果你需要组件来共享一个共同的逻辑。我建议你让你的组件继承一个基类:

export abstract class BaseComponent implements OnInit {
    ngOnInit() {
        // Example
    }
}

@Component({
    selector: 'a-selector'
})
export class NewComponent extends BaseComponent {
}