ReactJS 快速入门
React 是近期非常热门的一个前端开发框架。 这篇文章将介绍如何使用 React 来创建用户界面,希望能够起到抛砖引玉的效果。 相对于其他框架来说,React 提供了非常少的 API, 如同 Gulp, 越是少量的 API 同时意味着越多的可能性。 正如那句名言所说:
但是,精简的 API 不是意味着没有一定的学习成本,我们还是需要对此框架进行一定的理解。 闲话不多说,让我们进入正题。首先,让我们来了解下 React 中使用到的一些术语。 React 术语
DEMO 环境准备首先,在 React Download 页面 下载 Starter Kit,解压到某个地方。 进入到解压后的 <html> <head> <meta charset="utf-8" > <title>demo</title> </head> <body> <script src="react.js"></script> <script src="JSXTransformer.js"></script> <script type="text/jsx" src="app.js"></script> </body> </html> 第一个 React Element创建一个 Element 只需调用 var div = React.createElement('div',null,"Hello React"); // 使用 JSX var div = <div>Hello React</div> 创建之后就可以调用 React.render(div,document.body); 第一个 React ComponentReact Component 抽象出相同 UI 组件的结构和逻辑。 通过调用 var HelloMessage = React.createClass({ render: function () { return <div>Hello {this.props.name}</div> ; } }); React.render(<HelloMessage name="iissnan" />,document.body); 我们看到 Props在上一个例子中,可以看到有一个特殊的引用: 在使用上, React.render(<HelloMessage name="foo" />,document.body); 在 Component 内部,通过 var HelloMessage = React.createClass({ render: function () { return <div>Hello {this.props.name}</div>; } }); 需要注意的是, Props 仅用来定制 Component, 这些数据不应该被改动。 如果涉及到需要做改动的数据, 得考虑使用 Stateful ComponentState 数据代表 Component 的状态, 用于维护 Component 内部的状态。 当 State 发生改变之后, React 将会重新渲染 UI 。调用 与 var Greeting = React.createClass({ getInitialState: function () { return { greeted: false }; },greet: function () { this.setState({ greeted: true }); },render: function () { var response = this.state.greeted ? 'Hi' : ''; return ( <div> <div>Hello {this.props.name}</div> <span>{response}</span> <button onClick={this.greet}>Hi</button> </div> ); } }); React.render(<Greeting name="foo" />,document.body); 这个例子中加了几个函数,我们一一来看下。 首先是 当 State 发生改变后, React 将 Component 渲染到 Virtual DOM,新的 Virtual DOM 与 旧版本的进行比对,检查出改变的部分并更新浏览器的 DOM。 在这个例子中,当按钮被点击后, 组合结合 Props 和 State,我们就可以使用 Component 来创建完整的应用。 var Greeting = React.createClass({ getInitialState: function () { return { greeted: false }; },render: function () { var response = this.state.greeted ? 'Hi' : ''; return ( <div> <div>Hello {this.props.name}</div> <span>{response}</span> <button onClick={this.greet}>Hi</button> </div> ); } }); var users = ["foo","bar","baz"]; var GreetingApp = React.createClass({ render: function () { var greetings = this.props.users.map(function (user) { return <Greeting name={user} />; }); return <div>{greetings}</div>; } }); React.render(<GreetingApp users={users} />,document.body); 原始出处: IIssNan's Notes - ReactJS 快速入门 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |