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