2017-05-26 66 views
0

所有這些工作當然,但哪一個是ES6在jsx文件中的最佳做法? (忽略格式)。我的理解是,模板字符串大部分(完全是?)用於描述性控制檯日誌記錄,而非常規用法?JS引用最佳實踐? ES6/React - 單,雙,反引號?

<div className={`dropdown-menu dropdown-menu-media`}/> 
<div className={"dropdown-menu dropdown-menu-media"}/> 
<div className={'dropdown-menu dropdown-menu-media'}/> 

我知道有單引號和雙引號之間沒有功能上的區別(除非你是在兩者之間交替以避免逃逸)...但是...是一個或另一個更常見的還是「完全「一個'品味'的問題?即如果您正在瀏覽代碼,並且看到單個和雙引號隨機更改爲相同大小寫/用法,並且您必須使其統一,那麼您會使用哪一個?

const inputProps = { 
     onChange: this.onChange, 
     className: 'form-control', 
     id: "someId", 
     status: 'active', 
     isOpen: "open" 
    }; 

回答

1

當JSX最佳實踐工作是直接用雙引號(沒有括號),如果只是一個簡單的字符串,或者插一個變種成字符串

JSX試圖模仿HTML屬性使用反引號使得它在第一次學習時更易於訪問,除此之外,我發現它在掃描代碼時提供了JSX屬性和普通字符串之間清晰的視覺差異,因爲它們可能語法突出顯示相同的顏色

更常用的用法.. 。

反引號是模板文字的ES6介紹,應該只用於表示,除非你想做多行字符串

單引號和雙引號之間沒有什麼區別,但是根據我的經驗,很長一段時間對使用單引號的舉動(由棉短絨支持),只是因爲它使更簡潔可讀的代碼

堅持跨項目單一的代碼風格,並通過掉毛執行也是一個不錯的主意,因爲它減少了逃避錯誤

它通常取決於您使用的其他語言,因爲某些語言允許使用inte例如,單引號表示char,而不是String

對於它的價值,我喜歡上述理由......

const awardWinningActor = 'Nic Cage' 

const oscarNight = `And the award for Best Actor goes to ${awardWinningActor}` 

const winnersSpeech = `Some really long but also totally awesome amazing speech 
and also possibly some screaming and a leather jacket slung into the crowd` 

<NicCage oscarFor="Best Actor" says={`Here's my ${winnersSpeech}`}} /> 
0

單或雙引號是等價的,沒有這兩者之間的區別,當你想在串詞有雙引號,然後你可以用單引號或副整個字符串他們服務的使用情況反之亦然。然而,當你想用字符串

一起解決一個變量例如

const inputProps = { 
     onChange: this.onChange, 
     className: 'form-control', 
    }; 

<div className={`dropdown-menu dropdown-menu-media ${inputProps.className}`}/> 
+0

我知道有單,雙引號,除非你是在兩者之間交替,以避免逃逸的功能沒有差異... ...但我的問題是,什麼是更常見的還是「完全」一'品味'的問題?如果您正在瀏覽代碼,並且看到相同大小寫/使用情況下隨機使用單引號和雙引號,並且您必須使其統一,那麼您會使用哪一種? –

+0

這完全取決於引號之間的字符串是否包含其他引號,但是僅對帶字符串的動態變量使用backtics –

0

他們都不backtics一般使用。

<div className="dropdown-menu dropdown-menu-media"/> 

當它們是JSX屬性時,雙引號字符串文字。不要用表達式{}包裝。

對於動態類名,請使用classnames包,而不是字符串連接。

<div className={ 
    classNames('dropdown-menu dropdown-menu-media', this.props.className) 
}/>