React 快速介绍
原文: http://words.taylorlapeyre.me/an-introduction-to-react 根据他们自己的定义,React 是"一个用于构建用户界面的 JavaScript 类库". JSX:?React 的语法React 使用的是特殊的 JavaScript 语法,叫做 JSX. 你的应用里使用 JSX 有多重方法,但最终 JSX 代码会被编译到平常的 JavaScript. 我更喜欢第二种,就是预先编译好 JSX 代码. $ npm install -g react-tools $ cd project/ $ jsx --watch src/ build/ 这样以后,使用 JSX 只要在你的 HTML 文件中引用 开始运行搞清楚你想用哪一种处理 JSX 的方案以后,运行 React 就很平常了. <html> <head> <script src="react.js"></script> ... </head> <body> ... <script src="mine.js"></script> </body> </html> React 不依赖第三方的类库(比如 jQuery),所以不用去担心. Components: React 的城砖React 当中,components 是构建应用核心的城砖. /** @jsx React.DOM */ var Thing = React.createClass({ render: function() { return ( <p>{this.props.name}</p> ); } }); var ThingList = React.createClass({ render: function() { return ( <h1>My Things:</h1>,<Thing name="Hello World!" /> ); } }); React.renderComponent( <ThingList />,document.querySelector('body') ); 这个例子里, 如果这是你第一次接触 React,其他一些东西会让你感到非常奇怪. 这是把 HTML.. 写在 JavaScript 里了?不完全是. 你看到的是 JSX 的样子,这几行看着像 HTML,实际上不代表 DOM 节点. var ThingList = React.createClass({displayName: 'ThingList',render: function() { return ( React.DOM.h1(null,"My Things:"),Thing( {name:"Hello World!"} ) ); } }); 如果这个版本对你来说更有意义,那可以说达到预期了. var ComplexThing = React.createClass({ render: function() { return ( <div className="complexThing"> <Thing name="thing one" /> <Thing name="thing two" /> </div>,<a href="back.html">Go Back</a> ); } }); // 对比下面,非 JSX 的版本: var ComplexThing = React.createClass({displayName: 'ComplexThing',render: function() { return ( React.DOM.div( {className:"complexThing"},Thing( {name:"thing one"} ),Thing( {name:"thing two"} ) ),React.DOM.a( {href:"back.html"},"Go Back") ); } }); Components 和 State我前面的例子你可能已经注意到陌生的内容了 每个 React component 都接收传入的属性,定义在特定 component 实例上的不可变信息. 出了上边不可变的属性,React 还有个私有属性 /** @jsx React.DOM */ var StatefulThing = React.createClass({ updateName: function(event) { event.preventDefault(); this.state.name = "Taylor"; },setInitialState: function() { return ( {name: "World"} ); },render: function() { return ( <a href="#" onClick={this.updateName}> My name is {this.state.name} </a> ); } }); React 用驼峰命名法来绑定事件 handler,用这个函数来处理 event. 有一点注意一下,目前我们看到所有的例子都没有对你的应用的其他部分做什么设定. 希望这篇文章能让你了解到 React 是如何工作的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |