如果我没有在,和之前添加privatefoo
,则默认为公开。loadBar
text
export class RandomComponent {
@Input() foo: string;
@Output() loadBar = new EventEmitter();
text: string;
}
它们public
在组件中是否有用例?
出于封装/安全性的原因,我是否应该始终private
像下面这样添加所有内容?
export class RandomComponent {
@Input() private foo: string;
@Output() private loadBar = new EventEmitter();
private text: string;
}
谢谢
对于这个问题,有很多要说的话,这些是我想到的第一个想法:
首先,请记住,这private
只是一个编译时结构-无法在运行时强制执行(有关讨论,请参见此处和此处)。因此,请不要滥用private
任何出于安全目的有用的概念。这根本不是问题所在。
这是关于封装的,当您要在其中封装组件的字段或方法时,要明确表明不应从其他任何地方访问它,那么您绝对应该这样做private
:那private
是为了:它表明了您的意图,即无论您在课堂上穿什么,都不应从课外接触。
同样的道理public
:它也是仅编译时的构造,因此public
默认情况下类成员为true的事实在运行时的含义为零。但是,当您有一个成员明确打算将其作为类的API的一部分公开给外界时,您应该绝对使其public
发出信号以表明这一意图:这就是public
目的。
通常,这全部适用于Typescript。具体来说,在Angular中,在组件类上具有公共成员肯定是有效的用例:例如,在实现容器/组件(又名smart / dumb)模式时,“笨拙”的子代通过构造函数注入注入“聪明”的父代,传达您的意图,让孩子们感动父母不应该与父母打交道是非常重要的:否则,当您发现那些愚蠢的孩子在父母的酒柜里四处游荡时,不要感到惊讶。
因此,我对您的问题的回答:
我应该总是像下面这样对所有这些人都添加私有吗?
是强调否。您不应该总是添加,private
因为这样做会破坏关键字的目的,因为如果将其放置在任何地方,它都不再表示任何意图:您最好也不要将其放置在任何地方。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句