React 相关方法(API)介绍-元素与组件操作
来源:互联网 发布:成熟电子病历系统源码 编辑:程序博客网 时间:2024/06/02 03:34
JSX
可以减少定义组件的复杂性,但对于React来说JSX
并不是必须的,JSX
标签最终会被转换为原生的JavaScript。除使用JSX
语法外,还可以使用React
提供的API来创建组件。本文将介绍使用React创建元素,及一些React中重要的API。
React
引用- 元素操作API
- 2.1 创建元素:
React.createElement()
- 2.2 元素克隆:
React.cloneElement()
- 2.3
React.DOM
命名空间 - 2.4 有效元素判断:
isValidElement()
- 2.1 创建元素:
- 组件操作API
- 3.1 创建组件类:
createClass()
- 3.2 创建元素工厂函数:
createFactory()
- 3.1 创建组件类:
1. React
引用
React
是React库的入口,React
中所有的方法都是通过该对象调用,React
支持AMD
和CommonJS
(CMD)两种规范引用。
AMD
规范的预编译包,React
是全局的,可以像下现这样引用:
<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <!--引用React--> <script src="build/react.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> // 使用用React React.render(……); </script> </body></html>
CommonJS
模块系统(如:Node.js)中,使用require
来引用React:
// 引用Reactvar React = require('react');// 使用ReactReact.render(……);
2. 元素操作API
使用非JSX
语法创建组件,首先要创建React元素(ReactElement
)。React提供了创建元素、复制元素等方法。
2.1 创建元素:React.createElement()
ReactElement createElement( string/ReactClass type, [object props], [children ...])
该方法创建并返回一个ReactElement
对象,其参数如下:
type
,可以是一个HTML标签
或是一个React组件
(ReactClass
)props
,可选参数,表示对象的属性children
,第三个参数及其后的参数都会被认为是元素的子元素- 返回值:
ReactElement
对象
示例,创建一个如下结构的组件:
<div className="myClass"> <h2>itbilu.com</h2><hr/></div>
使用createElement()
方法操作如下:
ReactDOM.render( React.createElement('div', {className:'myClass'}, React.createElement('h2', null, 'itbilu.com'), React.createElement('hr') ), document.getElementById('example'));// itbilu.com
完整代码:createElement.html
2.2 元素克隆:React.cloneElement()
ReactElement cloneElement( ReactElement element, [object props], [children ...])
该方法会从已有的ReactElement
中复制,并返回一个新的ReactElement
对象,其参数如下:
element
,一个React元素
(ReactElement
)props
,可选参数,表示对象的属性children
,第三个参数及其后的参数都会被认为是元素的子元素- 返回值:
ReactElement
对象
示例,已有如下元素:
React.createElement('div');
使用cloneElement()
复制这个元素,并最终生前面示例中的HTML。复制方法如下,详见cloneElement.html:
var div = React.createElement('div');ReactDOM.render( React.cloneElement(div, {className:'myClass'}, React.createElement('h2', null, 'itbilu.com'), React.createElement('hr') ), document.getElementById('example'));
2.3 React.DOM
命名空间
React.DOM
命名空间中是创建各种HTML元素的工厂方法,所有的方法都是对React.createElement()
方法的封装,通过这个命名空间也以快捷的创建各个HTML元素。
ReactElement DOM.HTML_TAG( [object props], [children ...])
创建一个名HTML_TAG
的ReactElement
,其参数如下:
props
,可选参数,表示对象的属性children
,第三个参数及其后的参数都会被认为是元素的子元素- 返回值:
ReactElement
对象
React.DOM.*
只是createElement()
方法的快捷方式,它帮我们自动添加了createElement()
方法的第一个参数type
。以下两种方式执行结果相同:
React.createElement('div');React.DOM.div();
2.4 有效元素判断:isValidElement()
React提供了isValidElement()
方法,用于判断传入对象是否是有效的ReactElement
。
boolean isValidElement(* object)
示例如下:
var div = React.createElement('div');React.isValidElement(div); // trueReact.isValidElement(document.getElementById('example')); // fase
3. 组件操作API
组件
(Component
)是对一个或一系列ReactElement
的封装,在React中组件被认为是最小的功能分离点。合理的利用组件,可以解耦业务复杂度,更可以高效的完成UI的编写。
3.1 创建组件类:createClass()
ReactClass createClass(object specification)
创建并返回一个组件类(ReactClass
)。组件内部必须实现render()
方法,并且返回一个单个子级,而其内部可能会有很深的子级结构。
示例,将前面示例中的HTML结构定义成一个组件(createClass.html):
var App = React.createClass({displayName: 'App', render: function () { return (React.createElement('div', {className:'myClass'}, React.createElement('h2', null, this.props.children), React.createElement('hr') )); }});
创建组件类后,要将其渲染到页面除可以使用JSX
语法引用组件外,还可以使用以下两种方法:
- 使用
createElement()
方法创建ReactElement
- 使用
createFactory()
方法创建一个工厂函数,该函数会返回一个ReactElement
3.2 创建元素工厂函数:createFactory()
factoryFunction createFactory( string/ReactClass type)
创建一个返回ReactElements
的工厂函数:
type
,HTML标签(如:div、body等)或ReactClass
如,对前面的组件类创建一个工厂函数(createFactory.html):
var AppClass = React.createClass({displayName: 'App', render: function () { return (React.createElement('div', {className:'myClass'}, React.createElement('h2', null, this.props.children), React.createElement('hr') )); }});var App = React.createFactory(AppClass);
创建后就不再需要使用JSX
或cerateElement()
方法:
ReactDOM.render( App(null, 'itbilu.com'), document.getElementById('example'));
JSX
可以减少定义组件的复杂性,但对于React来说JSX
并不是必须的,JSX
标签最终会被转换为原生的JavaScript。除使用JSX
语法外,还可以使用React
提供的API来创建组件。本文将介绍使用React创建元素,及一些React中重要的API。
React
引用- 元素操作API
- 2.1 创建元素:
React.createElement()
- 2.2 元素克隆:
React.cloneElement()
- 2.3
React.DOM
命名空间 - 2.4 有效元素判断:
isValidElement()
- 2.1 创建元素:
- 组件操作API
- 3.1 创建组件类:
createClass()
- 3.2 创建元素工厂函数:
createFactory()
- 3.1 创建组件类:
1. React
引用
React
是React库的入口,React
中所有的方法都是通过该对象调用,React
支持AMD
和CommonJS
(CMD)两种规范引用。
AMD
规范的预编译包,React
是全局的,可以像下现这样引用:
<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <!--引用React--> <script src="build/react.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> // 使用用React React.render(……); </script> </body></html>
CommonJS
模块系统(如:Node.js)中,使用require
来引用React:
// 引用Reactvar React = require('react');// 使用ReactReact.render(……);
2. 元素操作API
使用非JSX
语法创建组件,首先要创建React元素(ReactElement
)。React提供了创建元素、复制元素等方法。
2.1 创建元素:React.createElement()
ReactElement createElement( string/ReactClass type, [object props], [children ...])
该方法创建并返回一个ReactElement
对象,其参数如下:
type
,可以是一个HTML标签
或是一个React组件
(ReactClass
)props
,可选参数,表示对象的属性children
,第三个参数及其后的参数都会被认为是元素的子元素- 返回值:
ReactElement
对象
示例,创建一个如下结构的组件:
<div className="myClass"> <h2>itbilu.com</h2><hr/></div>
使用createElement()
方法操作如下:
ReactDOM.render( React.createElement('div', {className:'myClass'}, React.createElement('h2', null, 'itbilu.com'), React.createElement('hr') ), document.getElementById('example'));// itbilu.com
完整代码:createElement.html
2.2 元素克隆:React.cloneElement()
ReactElement cloneElement( ReactElement element, [object props], [children ...])
该方法会从已有的ReactElement
中复制,并返回一个新的ReactElement
对象,其参数如下:
element
,一个React元素
(ReactElement
)props
,可选参数,表示对象的属性children
,第三个参数及其后的参数都会被认为是元素的子元素- 返回值:
ReactElement
对象
示例,已有如下元素:
React.createElement('div');
使用cloneElement()
复制这个元素,并最终生前面示例中的HTML。复制方法如下,详见cloneElement.html:
var div = React.createElement('div');ReactDOM.render( React.cloneElement(div, {className:'myClass'}, React.createElement('h2', null, 'itbilu.com'), React.createElement('hr') ), document.getElementById('example'));
2.3 React.DOM
命名空间
React.DOM
命名空间中是创建各种HTML元素的工厂方法,所有的方法都是对React.createElement()
方法的封装,通过这个命名空间也以快捷的创建各个HTML元素。
ReactElement DOM.HTML_TAG( [object props], [children ...])
创建一个名HTML_TAG
的ReactElement
,其参数如下:
props
,可选参数,表示对象的属性children
,第三个参数及其后的参数都会被认为是元素的子元素- 返回值:
ReactElement
对象
React.DOM.*
只是createElement()
方法的快捷方式,它帮我们自动添加了createElement()
方法的第一个参数type
。以下两种方式执行结果相同:
React.createElement('div');React.DOM.div();
2.4 有效元素判断:isValidElement()
React提供了isValidElement()
方法,用于判断传入对象是否是有效的ReactElement
。
boolean isValidElement(* object)
示例如下:
var div = React.createElement('div');React.isValidElement(div); // trueReact.isValidElement(document.getElementById('example')); // fase
3. 组件操作API
组件
(Component
)是对一个或一系列ReactElement
的封装,在React中组件被认为是最小的功能分离点。合理的利用组件,可以解耦业务复杂度,更可以高效的完成UI的编写。
3.1 创建组件类:createClass()
ReactClass createClass(object specification)
创建并返回一个组件类(ReactClass
)。组件内部必须实现render()
方法,并且返回一个单个子级,而其内部可能会有很深的子级结构。
示例,将前面示例中的HTML结构定义成一个组件(createClass.html):
var App = React.createClass({displayName: 'App', render: function () { return (React.createElement('div', {className:'myClass'}, React.createElement('h2', null, this.props.children), React.createElement('hr') )); }});
创建组件类后,要将其渲染到页面除可以使用JSX
语法引用组件外,还可以使用以下两种方法:
- 使用
createElement()
方法创建ReactElement
- 使用
createFactory()
方法创建一个工厂函数,该函数会返回一个ReactElement
3.2 创建元素工厂函数:createFactory()
factoryFunction createFactory( string/ReactClass type)
创建一个返回ReactElements
的工厂函数:
type
,HTML标签(如:div、body等)或ReactClass
如,对前面的组件类创建一个工厂函数(createFactory.html):
var AppClass = React.createClass({displayName: 'App', render: function () { return (React.createElement('div', {className:'myClass'}, React.createElement('h2', null, this.props.children), React.createElement('hr') )); }});var App = React.createFactory(AppClass);
创建后就不再需要使用JSX
或cerateElement()
方法:
ReactDOM.render( App(null, 'itbilu.com'), document.getElementById('example'));
- React 相关方法(API)介绍-元素与组件操作
- React 相关方法(API)介绍-ReactDom、ReactDOMServer、子节点
- react之相关组件API
- React 组件的API(组件实例)介绍
- react组件API的7个方法
- React 组件生命周期的说明及相关API
- React 组件 API
- React 组件 API
- React组件API
- React组件API
- React 组件 API
- React学习笔记_React中元素与组件的区别
- React Native 组件介绍
- react子组件与父组件之间方法调用
- ResultSet 相关操作与介绍
- jQuery操作元素内容的相关方法
- react---react组件创建,通过React.createClass方法与class App extends Component方法的区别
- react---react组件创建,通过React.createClass方法与class App extends Component方法的区别
- 你是否了解你的IT项目成本?
- 第十二章
- 自定义myeclipse中的servlet模板文件
- Linux crontab定时执行任务 命令格式与详细例子
- 动态规划问题系列---Disk Schedule
- React 相关方法(API)介绍-元素与组件操作
- iOS tcp 接收数据处理
- Jackson实现Object对象与Json字符串的互转
- Android—Activity详解
- leetcode-52. N-Queens II
- java中的foreach循环
- opencv rect类
- cuda调优
- Spark入门实战指南——HIVE