要设置组件的字符串@Input()
属性,我们可以使用两种语法:
<my-component caption="Hello there" type="primary" someThing="text value"></my-component>
OR:
<my-component [caption]="'Hello there'" [type]="'primary'" [someThing]="'text value'"></my-component>
我完全清楚这两种类型的绑定之间的区别。问题是:如果我有一堆我想静态设置的字符串@Input()属性,我可以使用简单的属性绑定语法(第一个例子)而不是更多的“多肉”属性绑定语法(第二个例子)吗? /强>
建议是什么,为什么?即什么是权衡,并且最好总是使用属性绑定,即使是设置静态字符串输入?
以下是我能想到的一些缺点:
data-
作为前缀
这违背了简单的整个目的)。实际的例子
已经咬我的是title
属性。但主要优点是简单。在上面的示例中,您同意第一种形式更优雅。在我的项目中,似乎大量属性是常量(一次性设置)字符串属性,并且语法在可读性方面存在实际差异。
所以......对自定义(非HTML)字符串属性使用属性绑定语法是不是一种坏习惯? (鉴于我知道/确定以上列出的一些限制)
答案 0 :(得分:1)
这些是我想补充的几件事:
Attributes
只是简单static fields
。attributes
成为properties
时,有一条罚款。modularity
和reuse-ability
是。Property binding
可让您在component
中获得更多控制权,并且您可以在任何component
或data-driven
方案中使用static
。component
一个property binding
版本权限可用于20个不同的项目。attributes
。他们很好。 property bindings
更强大,更灵活。最后我想为所有读者提及:
在前端开发中,任何人都可以修改代码。我们用 验证只是为了提供流畅的用户体验。除此之外 如果他们愿意,任何人都可以获取代码或更改HTML,这就是我们的原因 使用服务器端验证。角管线很复杂但是 下锅能。用户可以包装JSON对象并将其发送到服务器 绕过我们所有的验证。所以对于所有新的前端读者 开发者,我们不太关心安全性,我们尽力给予 良好的用户体验。