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>