当前位置:首页>鸿蒙APP>鸿蒙 ArkUI:V1 与 V2 装饰器全面对比与迁移指南

鸿蒙 ArkUI:V1 与 V2 装饰器全面对比与迁移指南

  • 2026-08-12 22:09:06
鸿蒙 ArkUI:V1 与 V2 装饰器全面对比与迁移指南

前言

在鸿蒙 ArkTS 开发中,官方在 API 11 / HarmonyOS NEXT 阶段推出了全新的 V2 状态管理体系,对原有 V1 体系进行了系统性重构。两套体系在装饰器命名、响应式粒度、数据流方向等核心设计上均有显著变化。

本文从实际项目出发,系统梳理 V1 和 V2 的差异、各装饰器的使用方法,以及迁移时的注意事项。


一、为什么要有 V2?

V1 体系存在以下痛点:

  • 响应式粒度粗
    @State 标记整个对象,对象内任意属性变化都会触发整个组件重渲染,性能差
  • 数据流不透明
    @Link 双向绑定容易形成"数据迷宫",难以追踪变更来源
  • 嵌套对象不响应
    @Observed + @ObjectLink 才能处理嵌套对象,使用繁琐
  • 跨组件通信受限
    @Provide/@Consume 与 @StorageLink 的能力边界模糊

V2 的目标是:精准响应、单向数据流、更清晰的组件契约


二、组件声明:@Component vs @ComponentV2

V1 写法

@Componentstruct MyCard {  @State count: number = 0  build() {    Text(`{this.count}`)      .onClick(() => this.count++)  }}

关键区别:

  • @ComponentV2
     是 V2 的入口,只能使用 V2 装饰器(@Local@Param 等)
  • @Component
     只能使用 V1 装饰器(@State@Prop 等)
  • 两套体系不可混用
    ,同一个 struct 内不能混合 V1/V2 装饰器

三、组件内部状态:@State vs @Local

V1 — @State

@Componentstruct Counter {  @State count: number = 0  // 整个变量被监听  build() {    Button(`count: {this.count}`)      .onClick(() => this.count++)  }}

差异对比:

特性
@State(V1)
@Local(V2)
是否可从外部传入
✅ 可以(但不推荐)
❌ 严格私有,不接受外部传入
响应粒度
对象整体
对象整体(配合 @Trace 实现字段级)
语义
组件状态
组件内部私有状态(更明确)

四、父子传参:@Prop / @Link vs @Param / @Event

这是 V1 到 V2 变化最大的地方。

V1 — @Prop(单向)和 @Link(双向)

// 父组件@Componentstruct Parent {  @State value: string = 'hello'  build() {    Column() {      // @Prop 单向传入,子组件修改不影响父      ChildA({ value: this.value })      // @Link 双向绑定,子组件修改同步到父      ChildB({ value: {this.user.age}`)    }  }}

V1 的问题:修改 user.age 会导致显示 name 的 Text 也重渲染,即使 name 没变。

V2 — @ObservedV2 + @Trace(字段级)

@ObservedV2class UserInfo {  @Trace name: string = ''   // 只有这个字段变化才触发相关组件更新  @Trace age: number = 0     // 独立追踪,互不影响  role: string = 'user'      // 未标 @Trace,变化不触发更新}@ComponentV2struct UserCard {  @Param user: UserInfo = new UserInfo()  build() {    Column() {      Text(this.user.name)      // 只在 name 变化时更新      Text(`{this.selectedIndex}`)      .onClick(() => this.selectedIndex = 1)  }}

差异对比:

特性
@Provide/@Consume(V1)
@Provider/@Consumer(V2)
命名方式
字符串 key
默认变量名(可指定别名)
修改方向
双向(Consume 可直接改)
双向(Consumer 可直接改)
初始值
Consume 不设初始值
Consumer 必须设默认值(Provider 未找到时使用)

七、监听变化:@Watch vs @Monitor

V1 — @Watch

@Componentstruct Page {  @State @Watch('onCountChange') count: number = 0  onCountChange() {    console.log('count 变了:'this.count)  }  build() { /* ... */ }}

V2 — @Monitor

@ComponentV2struct Page {  @Local count: number = 0  @Local name: string = ''  // 监听单个字段  @Monitor('count')  onCountChange(monitor: IMonitor) {    const prev = monitor.value()?.before  // 变化前的值    const curr = monitor.value()?.now     // 变化后的值    console.log(`count: {curr}`)  }  // 同时监听多个字段  @Monitor('count''name')  onAnyChange(monitor: IMonitor) {    console.log('count 或 name 变化了')  }  build() { /* ... */ }}

差异对比:

特性
@Watch(V1)
@Monitor(V2)
绑定方式
标注在被监听字段上
独立方法,参数指定监听目标
获取变化前后值
❌ 不支持
✅ 通过 IMonitor 获取 before/now
监听多个字段
需要多个 @Watch
一个 @Monitor 可指定多个字段名
监听嵌套字段
❌ 不支持
✅ 支持路径(如 ‘user.name’)

八、计算属性:getter vs @Computed

V1 — 普通 getter

@Componentstruct Page {  @State firstName: string = '张'  @State lastName: string = '三'  // 普通 getter,每次访问都重新计算  get fullName(): string {    return this.firstName + this.lastName  }  build() {    Text(this.fullName)  }}

V2 — @Computed

@ComponentV2struct Page {  @Local firstName: string = '张'  @Local lastName: string = '三'  // 自动缓存:只有依赖的字段变化时才重新计算  @Computed  get fullName(): string {    return this.firstName + this.lastName  }  build() {    Text(this.fullName)  }}

@Computed 的优势: 结果被缓存,依赖未变化时直接返回缓存值,避免重复计算。这在渲染列表或复杂 UI 时性能收益明显。


九、全局存储:AppStorage vs AppStorageV2

V1 — AppStorage

// 存入AppStorage.setOrCreate('userInfo'new UserInfo())// 组件中读取(双向绑定)@Componentstruct Page {  @StorageLink('userInfo') userInfo: UserInfo = new UserInfo()}

V2 — AppStorageV2

// 存入/获取(connect 模式,不存在则用工厂函数创建)const userInfo = AppStorageV2.connect(UserInfo, () => new UserInfo())!// 组件中读取@ComponentV2struct Page {  userInfo: UserInfo = AppStorageV2.connect(UserInfo, () => new UserInfo())!  build() {    // userInfo 是 @ObservedV2 类,@Trace 字段自动响应    Text(this.userInfo.nickname)  }}

差异对比:

特性
AppStorage(V1)
AppStorageV2(V2)
Key 方式
字符串
类型本身(类名作 key)或自定义字符串
响应式
@StorageLink 双向绑定
依赖 @ObservedV2 + @Trace 响应
类型安全
弱类型(any)
强类型(泛型)

十、完整对照表

功能
V1 装饰器
V2 装饰器
说明
声明组件
@Component@ComponentV2
两套不可混用
内部状态
@State@Local
V2 严格私有
父→子传值
@Prop@Param
V2 为只读引用
必传参数
@Require @Param
V2 可标注必传
子→父通信
@Link@Event
V2 强制单向
双向绑定语法
$变量名
V2 不支持
可观察类
@Observed@ObservedV2
字段追踪
@Track
(可选)
@Trace
(显式标注)
V2 只追踪 @Trace 字段
嵌套引用
@ObjectLink@Param
V2 更简洁
跨层共享
@Provide/@Consume@Provider/@Consumer
监听变化
@Watch@Monitor
V2 支持获取变化前后值
计算属性
普通 getter
@Computed
V2 有缓存
全局存储
AppStorage
 + @StorageLink
AppStorageV2.connect()
V2 类型更安全

十一、迁移建议

1. 新项目直接用 V2

V2 是官方推荐的现代写法,新项目无需考虑 V1。

2. 老项目渐进迁移

V1 和 V2 组件可以在同一应用中共存(但不能在同一个 struct 内混用),可以按模块逐步替换。

3. 迁移检查清单

□ @Component        →  @ComponentV2□ @State            →  @Local(内部状态)□ @Prop             →  @Param(父传子,只读)□ @Link             →  删除,改为 @Param + @Event 组合□ @Observed         →  @ObservedV2□ @Track / 无标注   →  @Trace(显式标注需要追踪的字段)□ @ObjectLink       →  @Param(直接传 @ObservedV2 对象)□ @Provide/@Consume →  @Provider/@Consumer□ @Watch            →  @Monitor□ 普通 getter       →  @Computed□ AppStorage        →  AppStorageV2

4. 常见踩坑

踩坑一:@Param 不可赋值

// ❌ 错误:直接修改 @Param@Param value: string = ''this.value = 'new'  // 运行时报错// ✅ 正确:通过 @Event 通知父组件修改@Event onChange: (v: string=> void = () => {}this.onChange('new')

踩坑二:@ObservedV2 类中忘记加 @Trace

@ObservedV2class Config {  theme: string = 'light'       // ❌ 没有 @Trace,修改不触发 UI 更新  @Trace language: string = 'zh'  // ✅ 有 @Trace,修改触发更新}

踩坑三:V1/V2 组件混用

@ComponentV2struct MyComp {  @State count: number = 0  // ❌ V2 组件内不能用 @State  @Local count: number = 0  // ✅ 正确}

十二、总结

V2 体系的核心设计理念是:明确的数据流方向 + 精准的响应粒度 + 清晰的组件契约

  • 单向数据流
    :通过删除 @Link、强制使用 @Event,让数据流向一目了然
  • 精准响应
    @ObservedV2 + @Trace 实现字段级响应,大幅减少不必要的重渲染
  • 类型安全
    AppStorageV2@Require @Param 等让组件接口更加明确

如果你正在开发新的鸿蒙应用,建议直接采用 V2 体系;如果是维护老项目,也可以按模块逐步迁移,两套体系可以在应用层面共存。


最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-19 19:28:57 HTTP/2.0 GET : https://c.mffb.com.cn/a/502584.html
  2. 运行时间 : 0.173821s [ 吞吐率:5.75req/s ] 内存消耗:4,349.87kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=9a0aa03eacd5c019cc17b397cae15e91
  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.001016s ] mysql:host=127.0.0.1;port=3306;dbname=c_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001550s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000803s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000732s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001326s ]
  6. SELECT * FROM `set` [ RunTime:0.000572s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001418s ]
  8. SELECT * FROM `article` WHERE `id` = 502584 LIMIT 1 [ RunTime:0.001153s ]
  9. UPDATE `article` SET `lasttime` = 1787138937 WHERE `id` = 502584 [ RunTime:0.028565s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.014893s ]
  11. SELECT * FROM `article` WHERE `id` < 502584 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001431s ]
  12. SELECT * FROM `article` WHERE `id` > 502584 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001244s ]
  13. SELECT * FROM `article` WHERE `id` < 502584 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002502s ]
  14. SELECT * FROM `article` WHERE `id` < 502584 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002352s ]
  15. SELECT * FROM `article` WHERE `id` < 502584 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001798s ]
0.179852s