使用 react.js 使用提供给浏览器的单个脚本文件创建页面

Create page with single script file given to browser using react.js

我正在尝试只向客户发送一行,如下所示:

<script src="/js/app.js"></script>

有效 HTML5.

然后我想用 React.js 重新构建页面。例如。 (注意修改后的代码,我的简化代码有一些错误),

React = require('react');
e = React.createElement;
App = React.createClass({
  render: function(){
    return e('html', null, 
            (e('head', null, 
              e('script', {src: '/js/app.js'})), 
            e('body', null, 'hello!')));
  }
});
React.render(e(App, null), document.documentElement);

结果 DOM:

<html>
<head></head>
<body data-reactid=".0.0">hello!</body>
<body></body>
</html>

您不需要在 React 中构建 <html><head><body> 标签。如果它们在收到的 HTML 文档中丢失,浏览器无论如何都会呈现它们。

您需要做的就是:

var React = require('react');

var App = React.createClass({displayName: "App",
  render: function(){
    return (
        React.createElement("h1", null, "Hello, World")
    );
  }
});

document.addEventListener("DOMContentLoaded", function(event) {
    React.render(React.createElement(App, null), document.body);
});

另外,不要像 e = React.createElement try using jsx 这样的技巧,这会使代码更具可读性:

var React = require('react');

var App = React.createClass({
  render: function(){
    return (
        <h1>Hello, World</h1>
    );
  }
});

document.addEventListener("DOMContentLoaded", function(event) {
    React.render(<App />, document.body);
});