angular - 角度 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)最好的方法是什么,第一种还是第二种?或者还有其他最好的解决方案吗?
- 问题 2)我的项目将是一个非常大的项目。所以我担心性能问题。因为我会将每个组件添加到巨大的 commonHelper 中。这是一个问题吗?
解决方案
您可以声明MessageHelper
为示例静态类(所有方法都是 static )并在组件类的主体中使用它,而不是在构造函数中注入该类
export class MessageHelper {
public static log() {}
}
组件.ts
import {MessageHelper} from './message-helper'
export class compoenent {
public methodA(){
MessageHelper.log();
}
}
推荐阅读
- gnuplot - gnuplot 5.0.3 中的 xrange 问题
- python-3.x - IBM Spectrum LSF - 访问不同 HPC 节点上的多个 GPU
- java - Spring Boot 与 Spock 的集成测试:存根方法返回 null
- android - Android DJI SDK 创建海量日志文件
- reactjs - ReactJS/TypeScript - 类型“HTMLElement”错误中不存在属性“文件”
- scala - 在 scala 中,如何将期货列表转换为返回第一个成功未来的未来?
- ios - 将序列与 CloudKit 同步的最佳方法是什么?
- java - 根据条件从同一方法返回两种不同的数据类型
- bash - 如何遍历文件并在bash中应用日期?
- .net - EntLib 4.1 中的 Oracle.ManagedDataAccess.Client 错误“连接字符串格式不正确”