Suspense 异步边界
1. 一个边界等待多个异步组件
逻辑:useComponent 默认会把 pending promise 登记到最近的 Suspense;边界收集到任意 pending 后显示 fallback,等全部 resolve 后再恢复 children。
Revenue
¥ 342,800
Q2 转化收入,环比 +12.6%
18.4%
转化率
3,214
订单
¥ 106
客单价
Activity
统一边界内的活动流
- 销售看板组件完成动态导入并挂载。
- 活动流组件与收入组件共享同一个 Suspense fallback。
- 加载完成后,边界重新渲染 children 内容。
2. 内层边界交给父 Suspense
左边是默认嵌套:外层绿色框还在,只显示黄色的内层 fallback。右边开启 suspensible:内层 pending 被继续登记到父边界,绿色外层框会整块被父级 fallback 替换。
默认:内层自己处理
外层框保持可见默认嵌套边界
这块绿色区域代表外层 children。是否被替换,是两个场景最明显的区别。
Activity
默认异步内容已解析
- 销售看板组件完成动态导入并挂载。
- 活动流组件与收入组件共享同一个 Suspense fallback。
- 加载完成后,边界重新渲染 children 内容。
开启:交给父级接管
外层框会被替换开启 suspensible 的嵌套边界
这块绿色区域代表外层 children。是否被替换,是两个场景最明显的区别。
Activity
交给父边界的活动流
- 销售看板组件完成动态导入并挂载。
- 活动流组件与收入组件共享同一个 Suspense fallback。
- 加载完成后,边界重新渲染 children 内容。
3. 退出 Suspense 控制
逻辑:这是组件级开关。useComponent 设置 suspensible: false 后不会向最近边界登记 pending,因此外层 fallback 不会显示,组件自己的 loading 负责占位。
Activity
本地 loading 控制的活动流
- 销售看板组件完成动态导入并挂载。
- 活动流组件与收入组件共享同一个 Suspense fallback。
- 加载完成后,边界重新渲染 children 内容。
提示:useComponent 的 loader 会按函数引用缓存。刷新页面能重新看到首屏 fallback;同一页面内再次渲染已加载组件会直接命中缓存。