1.React JSX:
React 使用 JSX 来替代常规的 JavaScript。
JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。
我们不需要一定使用 JSX,但它有以下优点:
JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。
它是类型安全的,在编译过程中就能发现错误。
使用 JSX 编写模板更加简单快速。
jsx类似于HTML:
ReactDOM.render( <h1>hello,world!</h1>, document.getElementById("example") ); //可以嵌套多个html标签 添加自定义属性的时候加上data- ReactDOM.render( <div> <h1>hello</h1> <h2>world</h2> <p data-myattribute="somevalue">balalala</p> </div>, document.getElementById("example") );
(1) Javascript表达式
我们可以在JSX中使用js表达式,表达式写在{}
ReactDOM.render(<div>{1+1}</div>,document.getElementById("example"));
(2) 样式
React推荐使用内联样式
var myStyle = { fontSize: 100, color: ‘#FF0000‘ }; ReactDOM.render( <h1 style = {myStyle}>网页漂亮网教程</h1>, document.getElementById(‘example‘) );
(3)数组
JSX 允许在模板中插入数组,数组会自动展开所有成员:
var arr = [ <h1>网页漂亮网教程</h1>, <h2>学的不仅是技术,更是梦想!</h2> ]; ReactDOM.render( <div>{arr}</div>, document.getElementById(‘example‘) );
React 可以渲染 HTML 标签 (strings) 或 React 组件 (classes)。
(1)要渲染 HTML 标签,只需在 JSX 里使用小写字母的标签名。
var myDivElement = <div className = "foo"/>;
ReactDOM.render(
myDivElement,
document.getElementById(‘example‘)
);
(2)要渲染 React 组件,只需创建一个大写字母开头的本地变量。
var myComponent = React.creatClass({/*...*/});
var myElement = <MyComponent someProperty={true} />;
ReactDom.render(myElement,document.getElementById(‘example‘));
//封装一个输出helloworld的组件 var HelloMessage = React.creatClass({ render:function(){ return <h1>hello,world!</h1>; } }); ReactDOM.render( <HelloMessage/>, document.getElementById("example") );
React.createClass 方法用于生成一个组件类 HelloMessage。 (必须大写)
<HelloMessage /> 实例组件类并输出信息。
如果需要传递参数,可以用this.props对象
var HelloMessage = React.createClass({ render:function(){ return <h1>{this.props.name}</h1>; } }); ReactDOM.render( <HelloMessage name = "Bonny"/>, document.getElementById(‘example‘) );
name属性通过this.props.name来获取;
我们可以通过创建多个组件来合成一个组件,即把组件的不同功能点进行分离。
以下实例我们实现了输出网站名字和网址的组件:
var WebSite = React.createClass({ render: function() { return ( <div> <Name name={this.props.name} /> <Link site={this.props.site} /> </div> ); }}); var Name = React.createClass({ render: function() { return ( <h1>{this.props.name}</h1> ); }}); var Link = React.createClass({ render: function() { return ( <a href={this.props.site}> {this.props.site} </a> ); }}); React.render( <WebSite name="网页漂亮网教程" site=" http://www.webpiaoliang.com" />, document.getElementById(‘example‘));
原文:http://www.cnblogs.com/Naomi-love/p/6421759.html