React API
组件 API
setState
- 合并 nextState 和当前 state。
- 这是在事件处理函数中和请求回调函数中触发 UI 更新的主要方法。
- 另外,也支持可选的回调函数,该函数在 setState 执行完毕并且组件重新渲染完成之后调用
- 注意:
- 绝对不要直接改变 this.state,
- setState() 不会立刻改变 this.state,而是创建一个即将处理的 state 转变。在调用该方法之后获取 this.state 的值可能会得到现有的值,而不是最新设置的值。
- setState() 将总是触发一次重绘,除非在 shouldComponentUpdate() 中实现了条件渲染逻辑。
- 如果使用可变的对象,但是又不能在 shouldComponentUpdate() 中实现这种逻辑,仅在新 state 和之前的 state 存在差异的时候调用 setState() 可以避免不必要的重新渲染。
replaceState
- 类似于
setState()
,但是删除之前所有已存在的 state 键,这些键都不在 nextState 中。
forceUpdate()
render()
方法从this.props
或者this.state
之外的地方读取数据,你需要通过调用forceUpdate()
告诉 React 什么时候需要再次运行render()
。- 如果直接改变了
this.state
,也需要调用forceUpdate()
- 调用
forceUpdate()
将会导致render()
方法在相应的组件上被调用,并且子级组件也会调用自己的render()
,但是如果标记改变了,那么 React 仅会更新 DOM
getDOMNode
- 如果组件已经挂载到了 DOM 上,该方法返回相应的本地浏览器 DOM 元素。
- 从 DOM 中读取值的时候,该方法很有用,比如获取表单字段的值和做一些 DOM 操作。
- 当
render
返回null
或者false
的时候,this.getDOMNode()
返回null
。
isMounted
- 如果组件渲染到了 DOM 中,
isMounted()
返回 true。可以使用该方法保证setState()
和forceUpdate()
在异步场景下的调用不会出错
setProps
- 调用
setProps()
来改变组件的属性,触发一次重新渲染。 - 另外,可以传递一个可选的回调函数,该函数将会在
setProps
完成并且组件重新渲染完成之后调用 - 刚方法仅在根组件上面调用。也就是说,仅在直接传给
React.render()
的组件上可用,在它的子级组件上不可用。如果你倾向于在子组件上使用setProps()
,不要利用响应式更新,而是当子组件在render()
中创建的时候传入新的 prop 到子组件中。
replaceProps
- 类似于
setProps()
,但是删除所有已存在的 props,而不是合并新旧两个 props 对象
顶层 API
React.createClass
- 创建一个组件类,并作出定义。组件实现了
render()
方法,该方法返回一个子级。 - 该子级可能包含很深的子级结构。
- 组件与标准原型类的不同之处在于,你不需要使用 new 来实例化。 组件是一种很方便的封装,可以(通过 new )为你创建后台实例。
React.createElement
- 创建并返回一个新的指定类型的
ReactElement
。 - type 参数可以是一个 html 标签名字字符串(例如,“div”,“span”,等等),或者是
ReactClass
(通过React.createClass
创建的)。
React.createFactory
- 返回一个生成指定类型 ReactElements 的函数。比如
React.createElement
, - type 参数可以是一个 html 标签名字字符串(例如,“div”,“span”,等等),或者是
ReactClass
。
React.render
- 渲染一个 ReactElement 到 DOM 中,放在
container
指定的 DOM 元素下,返回一个到该组件的引用。 - 如果 ReactElement 之前就被渲染到了
container
中,该函数将会更新此 ReactElement,仅改变需要改变的 DOM 节点以展示最新的 React 组件。 - 如果提供了可选的回调函数,则该函数将会在组件渲染或者更新之后调用。
React.unmountComponentAtNode
- 从 DOM 中移除已经挂载的 React 组件,清除相应的事件处理器和 state。
- 如果在 container 内没有组件挂载,这个函数将什么都不做。如果组件成功移除,则返回
true
;如果没有组件被移除,则返回false
。
React.renderToString
- 把组件渲染成原始的 HTML 字符串。该方法应该仅在服务器端使用。
- React 将会返回一个 HTML 字符串。你可以在服务器端用此方法生成 HTML,然后将这些标记发送给客户端,这样可以获得更快的页面加载速度,并且有利于搜索引擎抓取页面,方便做 SEO。
- 如果在一个节点上面调用
React.render()
,并且该节点已经有了服务器渲染的标记,React 将会维护该节点,并且仅绑定事件处理器,保证有一个高效的首屏加载体验。
React.renderToStaticMarkup
- string renderToStaticMarkup(ReactElement element)
- 和
renderToString
类似,除了不创建额外的 DOM 属性,例如data-react-id
,因为这些属性仅在 React 内部使用。如果你想用 React 做一个简单的静态页面生成器,这是很有用的,因为丢掉额外的属性能够节省很多字节。
React.isValidElement
- boolean isValidElement(* object)
- 判断对象是否是一个 ReactElement。
React.DOM
React.DOM
运用React.createElement
为 DOM 组件提供了方便的包装。该方式仅在未使用 JSX 的时候适用。例如,React.DOM.div(null, 'Hello World!')
。
React.PropTypes
React.PropTypes
包含了能与组件propTypes
对象共用的类型,用于验证传入组件的 props。更多有关propTypes
的信息,参考复用组件。
React.initializeTouchEvents
- initializeTouchEvents(boolean shouldUseTouch)
- 配置 React 的事件系统,使 React 能处理移动设备的触摸( touch )事件。
React.Children
React.Children
为处理this.props.children
这个封闭的数据结构提供了有用的工具。
React.Children.map
- object React.Children.map(object children, function fn [, object context])
- 在每一个直接子级(包含在
children
参数中的)上调用fn
函数,此函数中的this
指向上下文
。 - 如果
children
是一个内嵌的对象或者数组,它将被遍历:不会传入容器对象到fn
中。 - 如果 children 参数是
null
或者undefined
,那么返回null
或者undefined
而不是一个空对象。
React.Children.forEach
- React.Children.forEach(object children, function fn [, object context])
- 类似于
React.Children.map()
,但是不返回对象。
React.Children.count
- number React.Children.count(object children)
- 返回
children
当中的组件总数,和传递给map
或者forEach
的回调函数的调用次数一致。
React.Children.only
- object React.Children.only(object children)
- 返回
children
中仅有的子级。否则抛出异常。
React API的更多相关文章
- 一、基础知识 React API 一览
1.10 Hooks 参考文章:https://juejin.im/post/5be3ea136fb9a049f9121014 demo: /** * 必须要react和react-dom 16.7以 ...
- React学习系列一
系列学习react 翻译地址 https://scotch.io/tutorials/learning-react-getting-started-and-concepts 我是初学者,英语也不是很好 ...
- [转] Immutable 详解及 React 中实践
https://zhuanlan.zhihu.com/p/20295971 作者:camsong链接:https://zhuanlan.zhihu.com/p/20295971来源:知乎著作权归作者所 ...
- React学习系列
React学习系列 系列学习react 翻译地址 https://scotch.io/tutorials/learning-react-getting-started-and-concepts 我是初 ...
- Immutable 详解及 React 中实践
本文转自:https://github.com/camsong/blog/issues/3 Shared mutable state is the root of all evil(共享的可变状态是万 ...
- 聊聊React高阶组件(Higher-Order Components)
使用 react已经有不短的时间了,最近看到关于 react高阶组件的一篇文章,看了之后顿时眼前一亮,对于我这种还在新手村晃荡.一切朝着打怪升级看齐的小喽啰来说,像这种难度不是太高同时门槛也不是那么低 ...
- React——高阶组件
1.在React中higher-order component (HOC)是一种重用组件逻辑的高级技术.HOC不是React API中的一部分.HOC是一个函数,该函数接收一个组件并且返回一个新组件. ...
- 当初要是看了这篇,React高阶组件早会了
当初要是看了这篇,React高阶组件早会了. 概况: 什么是高阶组件? 高阶部件是一种用于复用组件逻辑的高级技术,它并不是 React API的一部分,而是从React 演化而来的一种模式. 具体地说 ...
- 重谈react优势——react技术栈回顾
react刚刚推出的时候,讲react优势搜索结果是几十页. 现在,react已经慢慢退火,该用用react技术栈的已经使用上,填过多少坑,加过多少班,血泪控诉也不下千文. 今天,再谈一遍react优 ...
随机推荐
- Linux的SSH(Secure Shell Protocol)服务
在数据传输前,SSH会对需要传输的数据进行加密,保证会话安全与会话中传输数据的安全,SSH客户端还包含一个远程拷贝scp. 1.SSH的结构 SSH服务由服务端软件(openssh)和客户端(SSH. ...
- 用SQL玩转数据挖掘之MADlib(一)——安装
一.MADlib简介 MADlib是Pivotal公司与伯克利大学合作的一个开源机器学习库,提供了精确的数据并行实现.统计和机器学习方法对结构化和非结构化数据进行分析,主要目的是扩展数据库的分析能力, ...
- macOS 10.12.1 + Xcode 8.1 安装cocoapods 1.1.1
最近公司刚给配了一台27寸的iMac,5K屏幕,这酸爽~~,新电脑,免不了系统升级,环境搭建,当一切就绪之后,我就准备装cocoapods了,然而,以前所有的教程全部都变得没用了...然而网上一大堆关 ...
- 网络通讯与IP地址
1.主机:Host,台式机,笔记本,手机等设备 2.网络介质:网线,光纤,无线网Wi-Fi.移动网络 3.数据:一串子节 网络通讯的检测:安装wireshark,通常称为抓包工具 抓,capture ...
- oracle随笔
Oracle新建数据库(新用户) 1.首先,创建(新)用户: create user username identified by password; username:新用户名的用户名 passwo ...
- 牛客寒假算法基础集训营4 F Applese 的大奖
链接:https://ac.nowcoder.com/acm/contest/330/H来源:牛客网 Applese 和它的小伙伴参加了一个促销的抽奖活动,活动的规则如下:有一个随机数生成器,能等概率 ...
- 存储过程中的select into from是干什么的
select into 赋值: select 0 into @starttimeselect @starttime from DUAL into后边应该还有个变量名,into前面也还要带上筛选字段, ...
- python中 列表 字典 元组的了解
#######列表######1.列表的特性 server = [['http'],['ssh'],['ftp']] server1 = [['mysql'],['firewalld']] 连接 ...
- TreeMap读源码总结
红黑树: 定义 A red–black tree is a kind of self-balancing binary search tree in computer science. Each no ...
- 非局部均值(Nonlocal-Mean)
转载自网站:http://www.cnblogs.com/luo-peng/p/4785922.html 非局部均值去噪(NL-means) 非局部均值(NL-means)是近年来提出的一项新型的 ...