本文最后更新于 2026年5月3日。
Singleton做什么的
在 Directus 的语境下(以及通用的软件开发中),Singleton(单例) 是一种特殊的数据模型模式。
简单来说,普通的 Collection(集合)像是一本“笔记本”(你可以写很多条笔记);而 Singleton 就像是“一页纸”(全局只有这一份,没有列表页,点开就是内容)。
在 Directus 里,Singleton 通常用来做:
-
全局配置:比如网站的标题、SEO 描述、备案号、联系方式。
-
首页管理:如果你的首页内容是唯一的(轮播图、一段介绍文字),不需要像博客文章那样发很多篇,就适合用 Singleton。
-
App 状态控制:比如控制 App 是否开启“维护模式”的开关。
它和普通 Collection 的区别:
| 特性 | 普通 Collection (Multi-item) | Singleton (Single-item) |
|---|---|---|
| 数量 | 可以创建无数条记录(ID=1, 2, 3…) | 永远只有 1 条记录 |
| 界面 | 点击后先进入“列表页”,再点进详情 | 点击后直接进入“编辑页” |
| API 调用 | GET /items/articles (返回数组) |
GET /items/site_config (直接返回对象) |
你可以怎么用它?
既然你刚才在折腾笔记系统,你可以创建一个 Singleton 叫做 Notebook_Settings:
-
字段:
welcome_message(欢迎语)、cover_image(笔记本封面)。 -
效果:你在左侧菜单点开它,不用选哪一条,直接就能修改你的笔记本名称或封面。
如何设置?
在创建 Collection(集合)的初始界面,勾选 "Treat as Singleton" 即可。
一句话总结:
如果你需要存一堆同类数据(如笔记、用户、产品),用普通的;如果你只需要存唯一一个配置或页面内容,用 Singleton。