這個語法叫做 JSX,是一個 JavaScript 的語法擴充。我們推薦你在寫 React 的時候透過這個語法來描述使用者介面的外觀。 JSX 可能為讓你想到一些樣板語言,但不一樣的地方是 JSX 允許你使用 JavaScript 所有的功能。 https://zh-hant.reactjs.org/docs/introducing-jsx.html 使用 JSX 時需要注意的限制 HTML 屬性在 JSX 中的表示方式 A、首先第一點是由於 React DOM 使用 camelCase 作為屬性命名規範 ,這代表像是說在 HTML 中的 tabindex ,在 JSX 中則必須寫成 tabIndex 。 B、接著第二點是像是在 HTML 中的 class , label 的 for ,由於在 JS 中是保留字(preserve word) ,所以需要額外改寫成 className 與 htmlFor 。 C、但是凡事總是會有例外,諸如 aria-* , data-* 則 不需要使用 camelCase 作為屬性命名規範 以上 React 會幫我們將上述提到的部分在編譯時轉換成在 HTML DOM 上其對應的屬性。 JSX 一定要有一個根元素(one single root element) 在使用 JSX 的時候, 是至少需要一個根元素的 ,否則就會報錯。 副檔名要用 .js 還是 .jsx? 大致重點在於 使用 .jsx 作為副檔名的判斷依據在於認為是否為標準的 Javascript。 由於 JSX 並不是標準的 Javascript,所以就透過以 .jsx 為副檔名來管理這類的檔案。 就好像使用 Typescript 會用 .ts 的副檔名一樣。 所以在實作上都可以成功運作,但怎麼管理就讓大家自己思考囉! https://ithelp.ithome.com.tw/articles/10239097