[toc]
## API注意事项
```
React.createElement(
type,
[props], //是一个对象,别被这个[]欺骗= =
[...children] //可以作为多个参数,也可以放在一个数组里
)
```
调用`createElement`后返回的是虚拟DOM,是对原生html标签元素或则react元素的描述
![](https://box.kancloud.cn/6f5ce0b8304c9ea6f0c2a165e6c89fdc_583x300.png)
等价于下面
![](https://box.kancloud.cn/e8d0fb5e93a8e0a7968657c121ad0315_542x269.png)
So,通过createElement给元素添加孩子有两种方式,一种是`123,234`,一种是`[123,234]`
孩子除了可以是数字和字符串,也可以是一个虚拟dom(react-element)
![](https://box.kancloud.cn/eefe8d864e200e974f4a0c0afd5bea51_599x377.png)
上面的写法等同于
![](https://box.kancloud.cn/12217b28602504a07694aa4bc11c6d90_426x91.png)
区别在于如果所有孩子放在一个数组里,作为一个参数,而不是各自作为一个参数,会报一个缺少key的警告
![](https://box.kancloud.cn/c50b7c9d05c3211118a4dd102c77e6b2_625x88.png)
## type:是普通html还是react组件?
如果type是一个字符串,说明这个react元素是一个普通的html元素
如果type是一个function,说明这个react元素是一个react组件
![](https://box.kancloud.cn/372c5bbdc33fa4859ecc279d4cd751aa_505x372.png)
- 空白目录
- 01.JSX,了解一下?
- JSX与虚拟DOM
- React
- 02.React文档精读(上)`
- React路由
- 关于BrowserRouter
- 关于Route
- 应用
- 权限认证
- case1
- context
- 新context
- 03.React路由
- 04.Diff
- 05.styled-components
- redux设计思想与API
- redux实现1
- 06.redux2
- 06.redux3
- 关于状态初始化
- saga
- 新版
- 使用saga进行业务逻辑开发
- react-router-redux
- React性能优化
- immutable使用
- 未整理
- FAQ
- 常用中间件
- pureComponent
- 项目相关总结
- antd分尸
- 按需加载
- ReactWithoutJSX
- 我的组件库
- C领域
- 用户接口
- htmlType
- style
- show
- conjure
- grid
- inject
- stop
- 内部接口
- 衍生组件
- Button
- 报错集锦
- ReactAPI
- 类上的那些属性
- prop-types
- React.createElement
- React.cloneElement
- React.Children和props.children
- react元素和react组件关于作为children方面的那些问题
- react组件与虚拟dom
- ref