现在最热门的前端框架,毫无疑问是 React。
React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。
环境版本:
- React v15.3.2
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello React</title>
<meta charset="UTF-8">
</head>
<body>
<div id="app"></div>
<script src="lib/react.js"></script>
<script src="lib/react-dom.js"></script>
<script src="lib/browser.min.js"></script>
<script type="text/babel">
var MessageBox = React.createClass({
alertMsg: function(){
alert('你刚才点了我一下');
},
render: function () {
return <h1 onClick={this.alertMsg}>Hello React</h1>;
}
});
ReactDOM.render(<MessageBox />, document.getElementById('app'), function () {
console.log('渲染完成');
});
</script>
</body>
</html>
上面代码有两个地方需要注意。首先,最后一个 <script>
标签的 type
属性为 text/babel
。这是因为 React 独有的 JSX
语法,跟 JavaScript 不兼容。凡是使用 JSX 的地方,都要加上 type="text/babel"
。
其次,上面代码一共用了三个库: react.js
、react-dom.js
和 browser.min.js
,它们必须首先加载。其中,react.js
是 React 的核心库,react-dom.js
是提供与 DOM 相关的功能,browser.min.js
的作用是将 JSX
语法转为 JavaScript 语法,这一步很消耗时间,实际上线的时候,应该将它放到服务器完成。
$ babel src --out-dir build
上面命令可以将 src
子目录的 js 文件进行语法转换,转码后的文件全部放在 build
子目录。