以及其它优雅的特性
React 教程源码 http://git.oschina.net/leinov/myreact
为了完成这个教程,我们需要服务端的配合,这个服务端是一个纯粹的可获取保存好的数据的API,为了更容易的实现,我们创建一个很简单的几行脚本但已足够支持,你可以下载源码查看,
这个服务端会使用json文件当作数据库,你可以把这个json文件当作正式的API使用,当你启动后段服务,它会支持我们的API以及静态页面
在这个教程里,我们会讲解的尽量简单,包含在上面讨论的服务器包是我们工作在一个HTML文件,用你常用的编辑器打开public/index.html 你会看到如下代码
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>React Tutorial</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react-dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.5/marked.min.js"></script>
</head>
<body>
<div id="content"></div>
<script type="text/babel" src="scripts/example.js"></script>
<script type="text/babel">
// To get started with this tutorial running your own code, simply remove
// the script tag loading scripts/example.js and start writing code here.
</script>
</body>
</html>
在余下的教程里,我们会编写自己的javascript代码,我们没使用任何高端的实时加载器,所以你需要在保存代码后手动刷新你的浏览器查看效果,然后在浏览器里打开http:localhost:3000(启动node服务后)
注意:这里是用jquery是因为在获取数据的时候使用ajax更方便 非react必须依赖
React全是模块组成的组件 在我们的评论框里 我们有以下的组件结构
- CommentBox
- CommentList
- Comment
- CommentForm
我们来创建一个CommentBox组件,一件简单的div
// tutorial1.js
var CommentBox = React.createClass({
render: function() {
return (
<div className="commentBox">
Hello, world! I am a CommentBox.
</div>
);
}
});
ReactDOM.render(
<CommentBox />,
document.getElementById('content')
);
注意:在原生的HTML标签中标签名以小写字母开头,而React的类名习惯以大写字母开头
我们使用javascript对象的React.createClass() 创建来一个新的React组件的一些方法,这些方法中最重要的一个就是render方法,它会返回一个React组件树最终会返回html
< div >标签不是实际的DOM节点;它们实例REact div组件。你可以认为这些是react可以处理的标记或片段。React是安全的。我们不生成HTML字符串XSS保护是默认的
你不需要返回基本的HTML标签 你可以返回组件树结构, 这就是React组件:可维护的前端组件
ReactDOM.render() 实利化根组件,