React 相关方法(API)介绍-ReactDom、ReactDOMServer、子节点
2016-09-09 17:04
585 查看
React组件及子组件最终通过
1.1 渲染
1.2 移除组件:
1.3 查找节点:
2.1 渲染为HTML:
2.2 渲染为静态HTML:
3.1
3.2
3.3
3.4
3.5
渲染一个
返回值:React组件
如,渲染一个组件到DOM中(render.html):
返回值:true或false
移除一个已经加载到DOM中的React组件,并清除对应的事件处理器和状态。如果
示例,从DOM中移除React组件(unmountComponentAtNode.html):
返回值:DOM元素或null
当组件已经挂载到DOM中,会返回浏览器中的DOM元素。这个方法从DOM中读取值时很有用,如:读取DOM的尺寸等。大多数情况下,应该使用DOM的固定引用而非使用
示例,使用
返回值:HTML
渲染
如果在服务器端已经渲染完成页面后,再调用
示例:React不推荐在客户端使用
返回值:HTML
该方法与
React内部所使用的特性。当你想使用一个简单的静态页面生成器时这个方法非常有用,它会剥离额外的特性且会节省大量字节。
在每个直接子元素(
null 或者 undefined,那么返回 null 或者 undefined 而不是一个空对象。
与
统计
返回
将不透明的子组件
render方法渲染到DOM中,该方法由
ReactDOM类库提供。页面的渲染可以在客户端或服务端完成,
ReactDOMServer类库使你可以在服务端完成组件的渲染。通过
this.props.children属性可以访问组件的子节点,而对子节点的处理的方法则由
React.Children类提供。
ReactDOM类库
1.1 渲染
ReactElement:
ReactDOM.render
1.2 移除组件:
ReactDOM.unmountComponentAtNode
1.3 查找节点:
findDOMNode()
ReactDOMServer类库
2.1 渲染为HTML:
renderToString()
2.2 渲染为静态HTML:
renderToStaticMarkup()
React.Children类
3.1
React.Children.map
3.2
React.Children.forEach
3.3
React.Children.count
3.4
React.Children.only
3.5
React.Children.toArray
1. ReactDOM
类库
react-dom包提供了DOM操作的具体方法,如:组件渲染、节点找查等。你可以在程序的最顶层使用它,除了必要的DOM操作,大多数组件不需要使用这个模块。
1.1 渲染ReactElement
:ReactDOM.render
ReactComponent render( ReactElement element, DOMElement container, [function callback] )
渲染一个
ReactElement到DOM中
element,要渲染的的
ReactElement
container,渲染结果在DOM中插入的位置
callback,回调函数,可选。传入该值时,会在组件渲染完或更新完成后调用
返回值:React组件
如,渲染一个组件到DOM中(render.html):
var App = React.createClass({ render: function () { return ( <div className="divider"> <h2>{this.props.children}</h2><hr/> </div> )} }); ReactDOM.render( <App>itbilu.com</App>, document.getElementById('example'), function(){ console.log('rendered done'); } ); // rendered done
1.2 移除组件:ReactDOM.unmountComponentAtNode
boolean unmountComponentAtNode(DOMElement container)
container,要清除组件的
container
返回值:true或false
移除一个已经加载到DOM中的React组件,并清除对应的事件处理器和状态。如果
container中没有组件,则不会做任何操作。
示例,从DOM中移除React组件(unmountComponentAtNode.html):
ReactDOM.render( <div className="divider"> <h2>itbilu.com</h2><hr/> </div>, document.getElementById('example') ); var result = ReactDOM.unmountComponentAtNode(document.getElementById('example')); console.log(result); // true
1.3 查找节点:findDOMNode()
DOMElement findDOMNode(ReactComponent component)
component,React组件或DOM元素
返回值:DOM元素或null
当组件已经挂载到DOM中,会返回浏览器中的DOM元素。这个方法从DOM中读取值时很有用,如:读取DOM的尺寸等。大多数情况下,应该使用DOM的固定引用而非使用
findDOMNode方法。当
render返回null时
findDOMNode也会返回null。
示例,使用
findDOMNode方法查找渲染到DOM中的组件:
var App = React.createClass({ render: function () { return ( <div className="divider"> <h2>{this.props.children}</h2><hr/> </div> )} }); var reactEle = ReactDOM.render( <App>itbilu.com</App>, document.getElementById('example') ); var element = ReactDOM.findDOMNode(reactEle);
2. ReactDOMServer
类库
react-dom/server包提供了组件的服端渲染功能。
2.1 渲染为HTML:renderToString()
string renderToString(ReactElement element)
element,React元素
返回值:HTML
渲染
ReactElement为原始HTML,这个方法只应该用在服务器端(虽然客户端也可以用)。你可以使用这个方法在服务端生成HTML字符串,并在页面请求时返回以使页面快速加载,并且生成的页面可以被搜索引擎SEO跟踪。
如果在服务器端已经渲染完成页面后,再调用
ReactDOM.render()方法,React会保留它且只做事件处理,以便有非常良好的首次加载体验。
示例:React不推荐在客户端使用
renderToString方法,为了操作方便,我们在下例中使用这个方法在客户端渲染一个
ReactElement为HTML(renderToString.html):
var html = ReactDOMServer.renderToString( <div className="divider"> <h2>itbilu.com</h2> </div>); document.getElementById('example').innerHTML = html;
2.2 渲染为静态HTML:renderToStaticMarkup()
string renderToStaticMarkup(ReactElement element)
element,React元素
返回值:HTML
该方法与
renderToString方法类似,但这个方法不会生成额外的DOM特性,如:
data-react-id等
React内部所使用的特性。当你想使用一个简单的静态页面生成器时这个方法非常有用,它会剥离额外的特性且会节省大量字节。
3. React.Children
类
React.Children是一个工具类,它提供了对组件不透明数据结构
this.props.children的处理功能。
3.1 React.Children.map
array React.Children.map(object children, function fn [, object thisArg])
在每个直接子元素(
children)上调用
fn函数。如果
children是一个内嵌的对象或者数组,它将被遍历(不会传入容器对象到
fn中)。如果
children参数是
null 或者 undefined,那么返回 null 或者 undefined 而不是一个空对象。
3.2 React.Children.forEach
React.Children.forEach(object children, function fn [, object thisArg])
与
React.Children.map方法功能类似,但不返回数组。
3.3 React.Children.count
number React.Children.count(object children)
统计
children中的子组件数,和传递给
map、
forEach回调函数的调用次数一致。
3.4 React.Children.only
number React.Children.only(object children)
返回
children中仅有的子级。否则抛出异常。
3.5 React.Children.toArray
array React.Children.toArray(object children)
将不透明的子组件
children转换为一个水平的数组。这在你操作子组件集合使用
render方法时非常有用,特别是在你想在传递结果前重新排列或分隔
this.props.children时。
相关文章推荐
- React 相关方法(API)介绍-元素与组件操作
- React、ReactDOM、ReactDOMServer相关API
- 原生JS中DOM节点相关API合集
- 【JavaScript】DOM节点常用方法介绍01
- 07-Dom节点常用方法介绍
- 原生JS中DOM节点相关API合集
- 【JavaScript】DOM节点常用方法介绍02
- jQuery操作DOM节点的相关方法
- DOM节点方法介绍
- 怎么用js操作dom节点的一些方法
- 基于(Mixed)Integer Programming方法的服务组合相关论文实验介绍 (1)
- Oracle——oem开启managementserver的时候搜索不到节点的解决方法!!!
- ADOMD.NET及其相关API介绍
- [Python]开发环境相关搭建方法介绍
- ArcGIS Server Silverlight/WPF API 符号设计利器SymbolEditor(一)——产品介绍
- XML 命名空间(XML Namespaces)介绍以及节点读取方法
- JavaScript 节点操作Dom的常用属性和方法
- Dom使用方法的介绍
- 原生JavaScript获取DOM节点的方法汇总
- 时代互联 域名注册查询接口api的使用 (w3Sockets)(这篇文章,关于是放到C:\WINDOWS或者是C:\WINDOWS\system32要亲自试试,附带在 server 2008 R2下无法运行的解决方法)