当前位置:首页>PPT>我找到了最适合程序员的 PPT 工具 — Slidev

我找到了最适合程序员的 PPT 工具 — Slidev

  • 2026-06-22 12:38:38
我找到了最适合程序员的 PPT 工具 — Slidev

我一直觉得,做技术分享这件事,和程序员平时的工作流有点拧巴,我指的是写 PPT 做技术分享!

写代码可以用 Git 管理,写文档可以用 Markdown,写博客也可以放到仓库里慢慢改。

但是如果你的领导让你做 PPT 的时候,那就到了另外一种状态。

配色要讲究吧,字体大小得调吧,代码贴进去缩进全乱了得重新排吧,图片左对齐还是居中得反复试吧,动画效果出来一看不对又得改吧——每一步都不是什么难事,但每一步都需要你从头摸索。

最后折腾一下午,文件名变成 分享稿-最终版-v2-真的最终版.pptx

这当然不是说 PowerPoint 不好。PowerPoint 很成熟,Keynote 也很好用。只是对程序员来说,有些场景确实有点别扭。

我这几天就是碰到一个类似的事情,领导要求做一个技术分享,页面里大部分内容其实就是标题、要点、代码块和几张架构图。结果为了这些东西,我要在一个图形界面里来回拖拽。尤其是代码,一旦贴进 PPT,缩进、字体、颜色经常都要重新调。最省事的办法是截图,但截图又带来另一个问题:后面代码改了,截图也得重新截。

其实之前我也试过 Reveal.js,同样是用代码写幻灯片的思路。但 Reveal.js 完全基于 HTML,每一页都是标签套标签,写内容之前得先搭结构,加个过渡动画还要手写属性。整个过程虽然比 PPT 自由,但还是慢。

直到我无意间发现 Slidev,我看了下文档,第一反应是:这东西不就是把 PPT 当成一个前端项目来写吗?

内容用 Markdown 写,样式用主题控制,代码块天然高亮,需要交互的时候还能写 Vue 组件。写完之后可以本地演示,也可以导出 PDF,甚至直接部署成一个网页。

我终于可以用程序员的思路写 PPT 了!

最最关键的是,实际上我只需要把我以前写的技术文章整理一下,甩进去让 AI 改改,就能得到一个效果还不错的演示文稿了。

所以我连夜写了这篇文章,赶紧分享给大家。

Slidev 是什么

Slidev 是一个面向开发者的演示文稿工具。

谨防各位已经迫不及待,官网先放这里:

Slidev
https://sli.dev/

它不是传统 PPT 软件,也不是简单的 Markdown 转 PDF 工具。更准确地说,它是一个基于 Web 技术的幻灯片框架。

它的入口通常就是一个 slides.md 文件。你在这个文件里写 Markdown,用 --- 分割不同页面,Slidev 会把它渲染成可以在浏览器里播放的幻灯片。

一个最简单的例子大概是这样:

---
theme: default
title: Hello Slidev
---

# Hello Slidev

用 Markdown 写 PPT。

---

# 第二页

```kotlin
fun main() {
    println("Hello Slidev")
}
```

基本上,一眼就能看懂你想要的效果。

简单来讲,开头的 themetitle 是配置。中间的内容就是普通 Markdown。每个 --- 表示新的一页。

这也是 Slidev 上手比较舒服的地方。它没有先让你进入一个很重的编辑器,而是让你从一个 Markdown 文件开始。

对程序员来说,这也太自然了 —— 你先写个文章,然后慢慢的就能变成一个炫酷的演示文稿。

快速跑起来

创建一个 Slidev 项目很简单:

npm create slidev@latest

或者:

npm init slidev

npm 基本上算是程序员必备工具了吧(另一个就是 python)。

项目创建之后,大概会看到这些文件:

.
├── slides.md
├── package.json
├── components/
├── layouts/
├── public/
└── styles/

一开始最重要的只有 slides.md。其他几个目录可以先简单理解:

slides.md        # 幻灯片内容
components/      # 自定义 Vue 组件
layouts/         # 自定义布局
public/          # 图片等静态资源
styles/          # 自定义样式

启动项目:

npm run dev

然后浏览器里就能看到幻灯片了。

这一点和普通前端项目很像。你改 slides.md,页面会自动刷新。写技术分享的时候,这种反馈很好,很自然,有点像调试代码的感觉。你不需要在“编辑模式”和“放映模式”之间来回切。

当然,这里也能看出 Slidev 的第一个门槛:它需要 Node 环境,需要包管理器,也需要你接受前端项目这套东西。

slides.md

Slidev 的核心就是 slides.md,对,没错,整个 PPT 就是一个 Markdown 文件

比如下面这个演示文稿:

---
theme: default
title: Slidev 入门
---

# Slidev 入门

像写 Markdown 一样写 PPT。

---

# 为什么需要 Slidev?

- 内容是纯文本
- 代码展示更自然
- 可以用 Git 管理
- 可以使用 Vue 组件

这里有几个点。

第一,文件开头的 --- 包起来的内容是全局配置。

---
theme: default
title: Slidev 入门
---

第二,后面的 --- 用来分割页面。

# 第一页

---

# 第二页

第三,每一页本身基本就是 Markdown。

这就带来另一个很直接的好处:内容可以轻松被 Git 管理。

PPT 文件当然也能放 Git 里,但你很难看清楚两次提交到底改了什么。Markdown 就不一样了,新增了哪一页,删了哪一行,改了哪个标题,diff 一眼能看出来,这算是 Slidev 的另一个优势吧。

如果你写的是长期维护的技术课件,这一点会非常有用。

比如公司内部培训材料,一年可能要改好几次,你能轻松的知道每次版本升级的具体内容/修改内容。Slidev 这种纯文本方式,维护起来就清楚很多。

页面布局

Slidev 不是让你每一页都从零开始排版。

它有 layout 的概念。

比如某一页想居中显示,可以这样写:

---
layout: center
---

# 一个重要结论

想要两栏布局,可以这样写:

---
layout: two-cols
---

# 左边

这里放问题。

::right::

# 右边

这里放答案。

这和 PowerPoint 的思路不太一样。

在 PowerPoint 里,你经常是在页面上手动拖元素。Slidev 更像是先选一种结构,然后把内容填进去。

这种方式的好处是统一。

一套分享里,标题页、章节页、代码页、总结页,可以保持比较稳定的结构。你不用每一页都调位置。

坏处也很明显:如果你想做非常精细的视觉排版,Slidev 没有 PowerPoint 那么直接。你当然可以写 CSS,可以自定义布局,但那就变成前端开发了。

所以 Slidev 适合的是“结构清楚的技术表达”,不是“视觉优先的设计表达”。

代码块终于不用截图了

Slidev 对程序员最直接的吸引力,就是代码展示。

写技术分享经常会放代码。用传统 PPT 的时候,我最不喜欢的就是处理代码块。

复制进去吧,格式容易乱。截图进去吧,后面不好改。放太多吧,页面很挤。放太少吧,又讲不清楚。

在 Slidev 里,代码块就是普通 Markdown 代码块:

```kotlin
fun main() {
    val tool = "Slidev"
    println("Hello, $tool")
}
```

写 Java 也一样:

```java
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello Slidev");
    }
}
```

它会自动做语法高亮。

这听起来只是一个小功能,但实际写技术分享的时候非常关键。因为代码不是装饰,它就是内容本身。代码最好能复制、能修改、能参与版本管理,而不是变成一张图片。

如果你的分享经常涉及 Android、Kotlin、Java、Rust、前端、后端,Slidev 在这一点上会比传统 PPT 顺手很多。

点击逐步展示

演示的时候,有些内容不适合一次性全放出来。

比如你要讲一个问题的定位过程,最好是一层一层展开。先出现现象,再出现猜测,再出现验证方式,最后出现结论。

Slidev 可以用 v-clicks 做逐步展示:

# 今天讲什么

<v-clicks>

- Slidev 是什么
- 如何创建项目
- Markdown 基础语法
- 代码展示
- 导出和部署

</v-clicks>

等等,v-clicks,这不就是 Vue 吗?没错,继续往下看,我会讲到。

放映时,每点一次出现一条。

这个能力很实用。技术分享很多时候不是把信息堆出来,而是控制信息出现的顺序。你要让观众跟着你的思路走,而不是一打开页面就把结论全看完。

演讲者备注

Slidev 也支持演讲者备注:

# Slidev 是什么

Slidev 是一个面向开发者的演示文稿工具。

<!--
这里提醒自己:
先讲为什么程序员会需要它。
不要一上来就讲命令。
-->

这类备注不会直接展示给观众,但你自己可以在演讲者视图里看到。

我觉得这个功能对技术分享很重要。

因为技术分享其实有两层内容。

页面上给观众看的内容应该尽量简洁。你不能把所有解释都塞到一页里,否则它就不是 PPT,而是文章截图。

但你自己讲的时候,又需要一些提示。尤其是讲复杂技术点时,很容易忘记某个过渡句或者某个例子。

演讲者备注正好放这些内容。

Vue 组件

这正是 Slidev 和普通 Markdown PPT 的分界线。

如果 Slidev 只是 Markdown 写 PPT,那它也还不错,但不算特别稀奇,它真正有意思的地方是:可以直接用 Vue 组件。

比如你在 components/Counter.vue 里写一个组件:

<script setup>
import { ref } from 'vue'

const count = ref(0)
</script>

<template>
  <button @click="count++">
    Count: {{ count }}
  </button>
</template>

然后在 slides.md 里直接使用:

# 一个交互组件

<Counter />

这时候,PPT 就不只是静态页面了。它可以有按钮,可以有状态,可以做交互。

比如你要讲:

状态机流转
Compose 重组过程
协程调度过程
算法执行过程
网络请求状态变化
Agent 多轮对话过程

这些内容如果用传统 PPT 做,通常要画很多页,或者做一堆动画。Slidev 里可以直接写成组件,让它变成一个可操作的演示。

当然,这也是门槛。

你如果不会 Vue,也不想写前端,那这部分能力可能暂时用不上。但即使不用组件,只用 Markdown、代码块、布局、导出,Slidev 也已经能完成大部分技术分享了。

组件能力更多是它的上限。

导出和分享

Slidev 写完之后,有几种常见用法。

第一种,直接本地演示:

npm run dev

第二种,导出成 PDF:

slidev export

第三种,构建成静态网站:

slidev build

如果只是发给别人看,PDF 最方便。

如果想保留交互能力,最好构建成 Web 页面部署。因为一旦导出成 PDF 或 PPTX,很多 Web 交互能力就不存在了。

如果你的 Slidev 只是普通文字和代码块,导出 PDF 问题不大。如果你用了很多 Vue 组件,那它更适合以网页形式分享。

也就是说,Slidev 既能当 PPT 用,也能当一个小型前端项目用。你最终怎么发布,取决于你的内容是不是依赖交互。

总结

Slidev 给程序员提供了另一条写演示文稿的路:当你的演示文稿本身就是技术内容时,可以不用把它塞进一个二进制 PPT 文件里,而是把它当成一个可以直接用来演示的项目,一个可以维护的项目。

内容是 Markdown。

代码块还是代码块。

样式交给主题。

交互交给 Vue。

版本交给 Git。

酷炫交互交给 Web。

这套东西放在一起,就很符合程序员的习惯。

当然,它也有成本。你需要 Node 环境,需要接受命令行,需要理解一些前端项目的概念。如果只是做普通汇报,或者要交给非技术同事反复编辑,那它未必合适。

但如果你经常做技术分享,尤其是经常写代码示例、架构说明、培训课件,我觉得 Slidev 很值得试试。

对我来说,它最大的好处就是:程序员平时写 Markdown 就很顺手,Slidev 直接在这个基础上就能生成演示文档,不用在写作和做 PPT 之间切换工作流。

最新文章

随机文章

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