【问题标题】:Can we create multiple components with same name in angular 2?我们可以在 Angular 2 中创建多个具有相同名称的组件吗?
【发布时间】:2018-10-21 07:18:41
【问题描述】:

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

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

【问题讨论】:

  • 你的意思是相同的选择器名称或类名?你能提供一些例子吗?
  • 选择器和类名。但是具有相同的选择器可能会产生一些冲突

标签: angular components


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    export abstract class BaseComponent implements OnInit {
        ngOnInit() {
            // Example
        }
    }
    
    @Component({
        selector: 'a-selector'
    })
    export class NewComponent extends BaseComponent {
    }
    

    【讨论】:

      猜你喜欢
      • 2014-06-05
      • 2021-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      相关资源
      最近更新 更多