是否可以将Harmony(ES6)与JSXTransformer.js一起使用?

dan*_*nvk 10 javascript ecmascript-harmony reactjs

我很幸运使用React的JSXTransformer.js在浏览器中使用JSX进行开发:

<script src="http://fb.me/JSXTransformer-0.11.1.js"></script>
<script type="text/jsx">
/** @jsx React.DOM */
...
</script>
Run Code Online (Sandbox Code Playgroud)

为了减少样板,我想使用Harmony的一些功能,例如箭头功能.Facebook的JSX编译器服务有一个和声复选框,可以将ES6转换为更传统的JS:

var f = v => this.props[v];
// becomes var f = function(v) { return this.props[v]; }.bind(this);
Run Code Online (Sandbox Code Playgroud)

是否可以使用浏览器内JSX启用此转换?

dan*_*nvk 21

React v0.11 中添加了此功能.而不是type="text/jsx",你设置type="text/jsx;harmony=true".例如:

<script type="text/jsx;harmony=true">
/** @jsx React.DOM */
var f = v => v*v;
console.log(f(2));  // logs 4
</script>
Run Code Online (Sandbox Code Playgroud)

  • 注意:从React v0.12开始,`@ jsx`编译指示[是不必要的](http://facebook.github.io/react/blog/2014/10/16/react-v0.12-rc1.html#在-JSX - 编译 - 是 - 走了). (5认同)