2015-10-16 137 views
1

组件属性是否有一个约定或首选的命名约定?Ember 2.0组件 - 属性命名约定

我所看到的底线转换:

{{my-component initial-selection='...' on-selected=(action '...') }} 

和骆驼套管:

{{my-component initialSelection='...' onSelected=(action '...') }} 

我还以为烬,是一个固执己见框架,将强制执行这些命名约定的至少一个。

回答

0

驼峰属性命名当然更受欢迎。我认为这样会更好,因为传递给组件的属性最终会成为JavaScript属性。

使用dasherized属性的主要缺点是您不能在JavaScript中使用点符号(myObject.myProperty)引用名称中破折号的对象属性,您需要使用括号表示法(myObject['my-property'])。

所以,如果你想访问initial-selection和依靠this.attrs,你将不得不使用:this.attrs['initial-selection'],而你可以访问initialSelection简单:this.attrs.initialSelection

因此,如果短划线在JavaScript变量名中不合法,那么坚持使用骆驼命名约定似乎更合理。