当前位置:首页>鸿蒙APP>纯血鸿蒙HarmonyOS ArkUI `bindSheet` 踩坑过程与最佳实践

纯血鸿蒙HarmonyOS ArkUI `bindSheet` 踩坑过程与最佳实践

  • 2026-06-29 07:52:52
纯血鸿蒙HarmonyOS ArkUI `bindSheet` 踩坑过程与最佳实践

本文基于一次真实项目排障过程整理而成,记录纯血鸿蒙HarmonyOS ArkUI bindSheet 踩坑过程与最佳实践


一、问题背景

在一个 HarmonyOS NEXT 项目里,我们有一个“表单页”,页面上有多个点击入口:

  • 选择图标
  • 选择周期
  • 选择开始日期
  • 选择结束日期

这些交互都使用 ArkUI 的 bindSheet 拉起半模态页面。

从代码表面看,状态变量写得很完整:

  • 点击时把 showXxxSheet 置为 true
  • 在 Sheet 内确认或取消时再把它置回 false
  • Builder 也都正常定义

但运行时却出现了一个典型现象:

某些 bindSheet 无法被正常拉起,或者只有部分弹层生效,看起来像“状态改了,但界面没反应”。

这类问题很容易被误判为:

  • 状态管理失效
  • @Local 没刷新
  • Builder 没重建
  • 组件被遮挡
  • 页面容器不支持半模态

实际上,这次问题的根因并不在这些方向。


二、最初的错误写法

先看一个简化示例。下面这种写法在很多业务页面里非常常见:

@ComponentV2struct DemoPage {@Local showSheetAboolean = false@Local showSheetBboolean = false@Local showSheetCboolean = false@Local showSheetDboolean = falsebuild() {PageRoot({title'示例页面',content() => this.ContentBuilder()    })    .bindSheet($$this.showSheetAthis.SheetABuilder, {height'80%'    })    .bindSheet($$this.showSheetBthis.SheetBBuilder, {height'85%'    })    .bindSheet($$this.showSheetCthis.SheetCBuilder, {heightSheetSize.FIT_CONTENT    })    .bindSheet($$this.showSheetDthis.SheetDBuilder, {heightSheetSize.FIT_CONTENT    })  }}

这段代码的问题点在于:

把多个 bindSheet 连续挂在了同一个宿主节点上。

代码看起来很整齐,也很像“统一管理弹层”的好写法,但这里恰恰埋下了问题。


三、排查过程:我们一开始也走了弯路

1. 先怀疑状态没更新

这是第一反应。

因为点击事件里通常只有一行:

this.showSheetC = true

如果弹层没出来,很容易怀疑是:

  • 点击事件没有触发
  • 赋值没有成功
  • @Local 状态没有驱动重建

但继续看代码会发现:

  • 其他交互状态能正常更新
  • 关闭逻辑也能执行
  • 同页其他 UI 也有响应

这说明状态系统本身大概率不是问题核心。

2. 再怀疑 Builder 写法不对

第二个常见怀疑方向是:

  • 是否写成了 this.SheetBuilder() 而不是 this.SheetBuilder
  • 是否在 Builder 里透传了值快照
  • 是否组件树没有正确刷新

这个方向确实值得检查,因为 bindSheet 非常依赖 Builder 的传递方式。

不过在这次问题里,即便 Builder 本身是正确的,弹层依旧无法稳定拉起。

3. 又怀疑页面容器不支持 bindSheet

如果页面根节点不是最原始的 Column() 或 Row(),而是一个业务自定义容器,很多人会继续怀疑:

会不会这个容器不支持 bindSheet

这个怀疑并不离谱,但继续横向对照同仓库其他页面后,发现相同容器在别处是能工作的。

于是排除掉“容器绝对不支持”的猜测。

4. 最后回到官方文档,才找到真正的突破口

真正让排查方向发生变化的是两条官方约束:

  1. bindSheet 是严格和宿主节点绑定的弹窗
  2. SheetSize.FIT_CONTENT 场景下,builder 根节点高度不能写百分比

第一条直接提醒我们:

不能把 bindSheet 单纯理解为一个“全局弹层开关”,它本质上是一个和宿主节点强绑定的半模态能力。

这时再回头看那段代码,就会发现最大的风险点正是:

同一个宿主节点连续绑定了多个 bindSheet


四、根因分析:为什么同一个节点绑定多个 bindSheet 容易出问题

ArkUI 文档对 bindSheet 的定义是“给组件绑定半模态页面”。

这句话很短,但有两个隐含信息:

1. bindSheet 的宿主不是抽象概念,而是真实节点

也就是说,它不是一个“页面级弹层注册中心”,而是具体绑定在某一个组件节点上的能力。

当你这样写时:

SomeHost()  .bindSheet(...)  .bindSheet(...)  .bindSheet(...)

你其实是在同一个宿主节点上重复附加多个半模态声明。

文档没有明确保证这种模式一定能稳定工作。

2. 多个 bindSheet 会让宿主语义变得不清晰

当页面中有多个点击入口,但所有 Sheet 都挂在同一个宿主上时,会出现几个问题:

  • 哪个点击区域才是真正的宿主触发点,语义不清晰
  • 后续维护时,很难从点击入口就近看到绑定关系
  • 某些场景下容易出现覆盖、冲突、失效或行为不符合预期

从工程实践角度看,这种写法即使某些页面“暂时能跑”,也不够稳。


五、这次问题的修复方式

最终我们采用了一个非常朴素但非常有效的修复策略:

把每个 bindSheet 下沉到各自的点击宿主节点上。

也就是:

  • 图标选择 Sheet 绑定到图标点击区域
  • 周期选择 Sheet 绑定到周期行
  • 开始日期 Sheet 绑定到开始日期行
  • 结束日期 Sheet 绑定到结束日期行

修正示例如下:

@BuilderDateRowBuilder(): void {Row() {Text(this.dateText)  }  .onClick(() => {this.tempDate = new Date(this.currentDate)this.showDateSheet = true  })  .bindSheet($$this.showDateSheetthis.DateSheetBuilder, {heightSheetSize.FIT_CONTENT,showClosefalse  })}

这个改法有三个直接收益:

  • 一个宿主只负责一个半模态,关系清晰
  • 点击入口和弹层定义就近放置,维护成本低
  • 避免多个 bindSheet 在同一宿主上的潜在冲突

六、第二个容易踩的坑:FIT_CONTENT 下根节点不能用百分比高度

这次排查还有一个顺手确认的重要点:

如果 bindSheet 配置使用 SheetSize.FIT_CONTENT,那么 Sheet 内容 builder 的根节点高度不能写百分比。

错误示例:

@BuilderDateSheetBuilder(): void {Column() {Text('示例日期选择器')  }  .width('100%')  .height('80%')}

为什么这是错的?

因为 FIT_CONTENT 的语义是:

半模态容器高度依赖孩子内容布局结果。

如果孩子根节点反过来再依赖父容器百分比高度,就形成了布局依赖闭环。

稳妥写法应该是:

@BuilderDateSheetBuilder(): void {Column({ space16 }) {Text('示例日期选择器')DatePicker({ selectedthis.pickedDate })this.ActionButtonsBuilder()  }  .width('100%')  .padding(16)}

原则很简单:

  • FIT_CONTENT 下根节点高度交给内容自然撑开
  • 内部如果有复杂滚动区,用 layoutWeight 管内部布局
  • 不要在根节点上写 height('80%')height('100%')

七、如果页面里就是有多个 Sheet,应该怎么设计

实际业务里,一个页面有多个半模态并不罕见。关键不在“能不能多个”,而在“怎么组织”。

方案 A:每个入口绑定自己的 Sheet

这是最推荐的方式,适合绝大多数表单页、设置页、筛选页。

特点:

  • 结构最直观
  • 问题定位最简单
  • 与宿主节点语义最一致

适用场景:

  • 图标选择
  • 日期选择
  • 周期选择
  • 底部操作菜单

方案 B:确实要共用宿主时,收敛成单一 activeSheet

如果业务上必须让多个半模态共用一个宿主节点,不建议重复声明多个 bindSheet,而应该收敛为:

  • 一个状态源 activeSheet
  • 一个 bindSheet
  • 一个总 Builder,内部按状态分支渲染不同内容

示例:

type ActiveSheet = 'none' | 'icon' | 'cycle' | 'date'@Local activeSheetActiveSheet = 'none'HostNode()  .bindSheet($$this.isSheetVisiblethis.ActiveSheetBuilder, {showClosefalse  })

然后在 ActiveSheetBuilder 内根据 activeSheet 决定展示哪种内容。

这种写法的优势是:

  • 宿主仍然只有一个 bindSheet
  • 状态源更统一
  • 不会出现同节点多次绑定的风险

八、这次踩坑后总结出的 6 条最佳实践

1. 默认遵循“单宿主单半模态”

一个宿主节点尽量只绑定一个 bindSheet

这是当前最值得团队直接纳入规范的一条经验。

2. bindSheet 优先绑定在实际点击入口附近

不要为了“集中管理”把所有弹层都堆到页面根节点。

离触发点越近,结构越清楚,也越不容易误配。

3. bindSheet 传 Builder 引用,不要传立即调用结果

推荐:

.bindSheet($$this.showSheetthis.SheetBuilder, options)

避免:

.bindSheet($$this.showSheetthis.SheetBuilder(), options)

后者容易导致内容在绑定瞬间就被求值,后续状态联动出现假刷新。

4. FIT_CONTENT 场景下,根节点不要使用百分比高度

只要看见:

  • SheetSize.FIT_CONTENT
  • builder 根节点 height('80%')

就应该立刻警觉。

5. 页面初始自动拉起时,先确认宿主已经挂载

如果你的业务要做“页面一出现就弹出半模态”,不要在宿主还没完成挂载时提前把 isShow 设为 true

否则看起来像是“状态已经是 true,但弹层不出现”。

6. 多个可选 Sheet 共宿主时,用单状态机而不是多个 bindSheet

若必须共宿主,用一个 activeSheet + 一个 bindSheet 比多个并排声明更稳。


九、团队可直接落地的 Code Review 检查清单

以后只要看到 bindSheet,建议在 CR 里快速过一遍下面这 7 项:

  1. bindSheet 是不是传了 Builder 引用,而不是 Builder()
  2. 同一个宿主节点上是否连续声明了多个 bindSheet
  3. 这个 bindSheet 是否绑定在实际触发区域附近?
  4. isShow 是否由明确的单一状态源控制?
  5. 如果用了 SheetSize.FIT_CONTENT,builder 根节点是否写了百分比高度?
  6. 如果需要自动拉起,宿主节点是否已经完成挂载?
  7. 如果一个宿主需要承载多个弹层,是否已经收敛为单 activeSheet 模式?

这个清单非常适合直接加到团队 ArkUI 页面开发规范里。


十、一个常见误区:问题不一定出在状态管理

这次排障最有价值的一点,不只是修复了一个页面,而是修正了一个认知偏差:

bindSheet 拉不起,不一定先去怀疑 @Local@State、ViewModel 或 Builder 刷新。

更应该优先检查的是:

  • 宿主节点是谁
  • 宿主是否已经挂载
  • 是否在同一宿主上绑定了多个 Sheet
  • FIT_CONTENT 的布局约束是否被破坏

很多看起来像“状态没刷新”的问题,最终都是宿主绑定和布局模型出了问题。


十一、结语

bindSheet 是一个非常好用的 ArkUI 能力,但它并不是一个“随便绑在哪都能工作”的全局弹层机制。

一旦页面复杂起来,真正稳定的做法通常不是继续堆状态,而是回到两个基本问题:

  1. 它到底绑定在哪个宿主节点上?
  2. 这个宿主节点和半模态之间的关系是否足够清晰、单一、可维护?

当团队把这两个问题想清楚后,bindSheet 相关的很多“玄学问题”都会从根上消失。


附:适合直接放进团队规范的简版结论

可以直接复制到团队 ArkUI 规范中:

  • bindSheet 默认遵循“单宿主单半模态”。
  • 优先把 bindSheet 绑定到各自点击入口,不要在页面根节点连续声明多个 bindSheet
  • bindSheet 传 Builder 引用,不传 Builder()
  • SheetSize.FIT_CONTENT 下,builder 根节点不要使用百分比高度。
  • 页面初显自动拉起时,先确认宿主节点已经挂载。
  • 多个弹层必须共宿主时,使用单 activeSheet + 单 bindSheet 模式。

如果团队能长期坚持这 6 条,bindSheet 的大部分踩坑基本都能提前规避。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-05 03:52:20 HTTP/2.0 GET : https://c.mffb.com.cn/a/496772.html
  2. 运行时间 : 0.141537s [ 吞吐率:7.07req/s ] 内存消耗:4,552.27kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=43fe69bbd1ab4b25b084f36955506429
  1. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/runtime/temp/cefbf809ba1a84190cb04b0cb7abcf79.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000647s ] mysql:host=127.0.0.1;port=3306;dbname=c_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000925s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.002000s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001868s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000507s ]
  6. SELECT * FROM `set` [ RunTime:0.000241s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000679s ]
  8. SELECT * FROM `article` WHERE `id` = 496772 LIMIT 1 [ RunTime:0.000466s ]
  9. UPDATE `article` SET `lasttime` = 1783194740 WHERE `id` = 496772 [ RunTime:0.001550s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000456s ]
  11. SELECT * FROM `article` WHERE `id` < 496772 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000502s ]
  12. SELECT * FROM `article` WHERE `id` > 496772 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000446s ]
  13. SELECT * FROM `article` WHERE `id` < 496772 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001777s ]
  14. SELECT * FROM `article` WHERE `id` < 496772 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.040817s ]
  15. SELECT * FROM `article` WHERE `id` < 496772 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.020877s ]
0.143166s