React 近版本提供了如下新特性:
Suspense 组件主要尝试解决两个问题:
1、瀑布问题、本该并行发出的请求无意中被串行发送出去(其原因是在设置 loading 状态时往往会进行渲染替换,导致子组件不被渲染,也不会发组件中的请求) 2、请求返回时间未知导致的渲染竞态问题(按照之前进行渲染变更的方案,往往会在请求收到响应后,利用新数据进行渲染)
另外,异步 loading 状态的展示,目前往往通过 setState
的状态变更来处理,需要处理额外的代码逻辑
- Transition 功能可以解决 Suspense 组件的回退问题,以 iOS 设置选项中 Safari 功能为例,实现看似同步的异步操作.