gpt4 book ai didi

html - Angular 中组件的字符串@Input 属性的属性绑定(bind)与属性绑定(bind)?

转载 作者:太空狗 更新时间:2023-10-29 16:39:00 25 4
gpt4 key购买 nike

设置字符串 @Input()组件的属性,我们可以使用两种类型的语法:

<my-component caption="Hello there" type="primary" someThing="text value"></my-component>

或者:

<my-component [caption]="'Hello there'" [type]="'primary'" [someThing]="'text value'"></my-component>

我完全了解这两种绑定(bind)之间的区别。问题是:如果我有一堆要静态设置的字符串@Input() 属性,我可以使用简单的属性绑定(bind)语法(第一个示例)而不是更“丰富”的属性绑定(bind)语法(第二个示例)吗?

建议是什么,为什么? IE。有什么权衡取舍,是否最好始终使用属性绑定(bind),即使是设置静态字符串输入?

以下是我能想到的几个缺点:

  • 属性绑定(bind)实际上作为 HTML 属性应用,例如用户可以通过浏览器的开发工具轻松查看/更改它们。属性(property)绑定(bind)不是标记的一部分。
  • 属性绑定(bind)可能会发生冲突使用实际的 HTML 属性名称(除非您在它们前面加上 data-这违背了简单的整个目的)。实际例子已经咬我的是title属性。
  • 在 Angular 语言服务的属性绑定(bind)标记中没有智能感知。

但主要优点是简单。在上面的示例中,您会同意第一种形式更优雅。在我的项目中,似乎有大量属性是常量(一次性设置)字符串属性,语法在可读性方面产生了实际差异。

那么...对自定义(非 HTML)字符串属性使用属性绑定(bind)语法是一种不好的做法吗? (考虑到我知道/可以接受上面列出的一些限制)

最佳答案

这些是我想补充的几件事:

  • Attributes很普通static fields .
  • attributes 时有一条细线成为properties .
  • 这里的目标不是简单,modularityreuse-ability是。
  • Property binding让您更好地控制 component你可以使用 component在任何喜欢任何data-drivenstatic场景。
  • 一个 component使用 property binding 正确构建可用于 20 个不同的项目。
  • 但是如果你没有这样的要求那么你可以使用attributes .他们很好。
  • 我不会说哪个更好,两者都有各自的用例,但总体而言 property bindings更加强大和灵活。

And last thing I like to mention for all readers:
In front-end development any one can modify the code. We use validations just to provide a smooth user experience. Other than that any one can get the code or alter HTML if they want to, that's why we use server side validations. Angular pipe line is complex but hack-able. A user can wrap a JSON object and send it to server bypassing all our validations. So for all readers who are new front-end devs, we don't bother too much about security, we try our best to give a good user experience.

关于html - Angular 中组件的字符串@Input 属性的属性绑定(bind)与属性绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44756464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com