首页 > 解决方案 > 角度 6 中的大 commonHelper 还是单独的 smallHelper?

问题描述

我有一个 Angular 6 项目。我想创建助手。(例如 messageHelper、stringHelper、domHelper、gridHelper ....)但我的问题是对于每个页面我都必须添加以下代码:

MyPage.ts(第一种方式)

 constructor(private messageHelper: MessageHelper,
     private stringHelper: StringHelper,
     private domHelper: DomHelper,
     private gridHelper : GridHelper) { }

对于每个助手,此代码将更长。我必须写在每一页(组件)。我认为,我创建了 commonHelper,并将所有帮助程序添加到 commonHelper 作为公共。

common-helper.ts(第二种方式)

constructor(public messageHelper: MessageHelper,
    public stringHelper: StringHelper,
    public domHelper: DomHelper,
    public gridHelper : GridHelper) { }

如果我这样写 commonHelper,我只能将 commonHelper 添加到页面。然后我可以调用 commonHelper.messageHelper.ShowMessage()。

MyPage.ts(第二种方式)

constructor(private commonHelper: CommonHelper)
  1. 问题 1)最好的方法是什么,第一种还是第二种?或者还有其他最好的解决方案吗?
  2. 问题 2)我的项目将是一个非常大的项目。所以我担心性能问题。因为我会将每个组件添加到巨大的 commonHelper 中。这是一个问题吗?

标签: angulartypescript

解决方案


您可以声明MessageHelper为示例静态类(所有方法都是 static )并在组件类的主体中使用它,而不是在构造函数中注入该类

export class MessageHelper {
  public static log() {}
}

组件.ts

import {MessageHelper} from './message-helper'

export class compoenent {

 public methodA(){
   MessageHelper.log();
 }

}

推荐阅读