浅谈React.createElement()方法

本文介绍了React中的createElement方法,包括其参数、返回值及使用示例。示例展示了如何使用该方法创建HTML标签和React组件,并强调了为每个子元素设置唯一key的重要性。

documentcreateElement()方法,React也有createElement()方法,下面就来介绍ReactcreateElement()方法。

var reactElement = ReactElement.createElement(
  	... // 标签名称字符串/ReactClass,
  	... // [元素的属性值对对象],
  	... // [元素的子节点]
)

1、参数:

1)第一个参数:可以是一个html标签名称字符串,也可以是一个ReactClass(必须);

2)第二个参数:元素的属性值对对象(可选),这些属性可以通过this.props.*来调用;

3)第三个参数开始:元素的子节点(可选)。

2、返回值:

一个给定类型的ReactElement元素

 

eg1:第一个参数为一个html标签名称字符串

var li1 = React.createElement('li', null, 'First');
var li2 = React.createElement('li', null, 'Second');
var li3 = React.createElement('li', null, 'Third');
var ul = React.createElement('ul', {className: 'list'}, li1, li2, li3);
ReactDOM.render(
	ul,
    document.getElementById('content')
);

 

eg2:第一个参数为一个ReactClass

属性值通过this.props.text来调用:

var Li = React.createClass({
	render:function(){
    	return (
  			<li>{this.props.text}</li>
  		);
	}
})
var li1 = React.createElement(Li, {key:'1',text:'First'});
var li2 = React.createElement(Li, {key:'2',text:'Second'});
var li3 = React.createElement(Li, {key:'3',text:'Third'});
var ul = React.createElement('ul', {className: 'list'}, [li1, li2, li3]);
ReactDOM.render(
    ul,
    document.getElementById('content')
);

注意:即使只创建一个li元素,createElement第二个参数也要加上key:’value’,value值彼此不相同,如果不指定此属性,虽然也能按照逻辑正常显示,但会报如下的警告:

Warning: Each child in an array or iterator should have a unique "key" prop. Check the top-level render call using <ul>.

 

eg3:第一个参数为一个ReactClass

属性值通过this.props.children来调用:

var Li = React.createClass({
	render:function(){
    	return (
  			<li>{this.props.children}</li>
  		);
	}
});
var li1 = React.createElement(Li, {key:'1'}, 'First');
var li2 = React.createElement(Li, {key:'2'}, 'Second');
var li3 = React.createElement(Li, {key:'3'}, 'Third');
var ul = React.createElement('ul', {className: 'list'}, [li1, li2, li3]);
ReactDOM.render(
    ul,
    document.getElementById('content')
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值