Hello World

没有 JSX

这是一个使用 React 的主 API 来创建 React 元素的基本示例,以及用于在浏览器中呈现 React 元素的 React DOM API。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello React!</title>

    <!-- Include the React and ReactDOM libraries -->
    <script src="https://fb.me/react-15.2.1.js"></script>
    <script src="https://fb.me/react-dom-15.2.1.js"></script>

  </head>
  <body>
    <div id="example"></div>

    <script type="text/javascript">

      // create a React element rElement
      var rElement = React.createElement('h1', null, 'Hello, world!');

      // dElement is a DOM container
      var dElement = document.getElementById('example');

      // render the React element in the DOM container
      ReactDOM.render(rElement, dElement);

    </script>

  </body>
</html>

使用 JSX

不是从字符串创建 React 元素,而是可以使用 JSX(由 Facebook 创建的 Javascript 扩展,用于向 JavaScript 添加 XML 语法),这允许编写

var rElement = React.createElement('h1', null, 'Hello, world!');

作为等价物(对于熟悉 HTML 的人来说更容易阅读)

var rElement = <h1>Hello, world!</h1>;

包含 JSX 的代码需要包含在 <script type="text/babel"> 标记中。此标记中的所有内容都将使用 Babel 库转换为纯 Javascript(除了 React 库之外还需要包含它)。

所以最后上面的例子变成:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello React!</title>

    <!-- Include the React and ReactDOM libraries -->
    <script src="https://fb.me/react-15.2.1.js"></script>
    <script src="https://fb.me/react-dom-15.2.1.js"></script>
    <!-- Include the Babel library -->
    <script src="https://npmcdn.com/babel-core@5.8.38/browser.min.js"></script>

  </head>
  <body>
   <div id="example"></div>

    <script type="text/babel">

      // create a React element rElement using JSX
      var rElement = <h1>Hello, world!</h1>;

      // dElement is a DOM container
      var dElement = document.getElementById('example');

      // render the React element in the DOM container
      ReactDOM.render(rElement, dElement);

    </script>

  </body>
</html>