2015-10-16 139 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變量名中不合法,那麼堅持使用駱駝命名約定似乎更合理。