组件属性是否有约定或首选命名约定?
我见过破破烂烂的:
{{my-component initial-selection='...' on-selected=(action '...') }}
和骆驼套:
{{my-component initialSelection='...' onSelected=(action '...') }}
我原以为 ember 作为一个固执己见的框架,至少会强制执行这些命名约定中的一个。
组件属性是否有约定或首选命名约定?
我见过破破烂烂的:
{{my-component initial-selection='...' on-selected=(action '...') }}
和骆驼套:
{{my-component initialSelection='...' onSelected=(action '...') }}
我原以为 ember 作为一个固执己见的框架,至少会强制执行这些命名约定中的一个。
驼峰式属性命名当然更受欢迎。我认为这更好,因为传递给组件的属性最终会成为 JavaScript 属性。
使用破折号属性的主要缺点是您不能在 JavaScript 中使用点符号 ( ) 引用名称中包含破折号的对象属性myObject.myProperty
,您需要使用括号符号 ( myObject['my-property']
)。
因此,如果您想访问initial-selection
和依赖this.attrs
,则必须使用:this.attrs['initial-selection']
,而您可以访问initialSelection
更简单的:this.attrs.initialSelection
。
因此,如果 dash 在 JavaScript 变量名中不合法,那么坚持使用驼峰式命名约定似乎更合理。