Babel翻译React仍然需要JSXTransformer

时间:2015-08-22 21:43:01

标签: javascript reactjs babeljs

我遇到了React的问题。

Babel翻译了这个:

React.render(
  <h1>Hello, world!</h1>,
  document.getElementById('example')
);

React.render(React.createElement(
        'h1',
        null,
        'Hello, world!'
      ), document.getElementById('example'));

这仍然可以正常工作并显示&#34; Hello World&#34;:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello React!</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/react.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/JSXTransformer.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/jsx">
      React.render(React.createElement(
        'h1',
        null,
        'Hello, world!'
      ), document.getElementById('example'));
    </script>
  </body>
</html>

但是,如果删除JSXTransformer脚本标记,则该页面不起作用。页面保持空白,控制台不记录任何内容。

Safari和Chrome都会出现问题。

1 个答案:

答案 0 :(得分:2)

浏览器不会使用text/javascript以外的类型来解释脚本标记。与JSXTransformer一起使用时,脚本标记的类型已从text/jsx更改为text/javascript。您只需将type="text/jsx"更改为type="text/javascript"