Reactで出てくるJavaScript syntax extension(以下、JSX)という単語の意味で混乱したのでメモしておく。
react-railsでComponentを生成した時に生成されるファイルの拡張子が.js.jsxになっていて、この拡張子ってなんだろと思ったのがことの始まり。
rails g react:component Sample |
端的に言うとReactでXMLっぽい構文が出てくるが、それがJSX。
Javascriptに対する知識が無いので、てっきりECMAScript2015 (ES6) にXMLライクな記述が出来る仕様が含まれていると思っていた。
詳細はReactのページにJSXのリンクがあって纏められている。
https://facebook.github.io/react/docs/jsx-in-depth.html
https://facebook.github.io/jsx/
JSXはXMLライクなシンタックスをECMAScriptで使えるようにするための拡張と書いてある。
// Using JSX to express UI components. |
まとめ
JSXはXMLライクな構文をECMAScriptで使えるようにするための拡張でECMAScript2015にはJSXの仕様が含まれていない。なんでBabelでJSXを含んでいてもトランスパイルできるんだ?と思ったらBabelがReact JSXをサポートしているからでした。
おわり。