multiEntry 是 IndexedDB API 中 IDBIndex 的索引配置项,非 HTML5 属性;设为 true 时将数组键值展开为多条独立索引记录,false(默认)则视整个数组为单一键值。

HTML5 中没有 multiEntry 属性用于处理数组字段索引映射。这个说法存在根本性误解——multiEntry 是 IndexedDB API 中 IDBIndex 对象的配置选项,不属于 HTML5 表单或任何 HTML 元素的属性。
multiEntry 是 IndexedDB 索引的配置项,不是 HTML 属性
它仅在调用 createIndex() 方法时作为可选参数出现,用于控制当索引键值为数组时的存储行为:
- 当
multiEntry: true,数组中的每个元素都会生成一条独立索引记录(即“展开”数组) - 当
multiEntry: false(默认),整个数组被视为一个单一键值,只生成一条索引记录
典型使用场景:对对象数组字段建立多值索引
例如,一个待办事项对象包含标签数组 tags: ["work", "urgent"]:
- 设索引名
"byTags",键路径"tags",multiEntry: true - 该对象会被匹配到两个索引条目:
"work"→ 该对象,"urgent"→ 该对象 - 后续可用
index.getAll("work")快速查出所有带 work 标签的事项
不支持嵌套路径或动态索引映射
multiEntry 不解析字段结构,也不做索引映射逻辑转换:
- 它不关心数组元素是否是对象、字符串或数字,只做扁平化展开
- 不支持类似
"items[].id"这样的路径语法(IndexedDB 键路径不支持通配符或表达式) - 无法将数组索引(如
[0],[1])映射为独立字段名,它只作用于键路径最终取值的结果
常见误用与澄清
以下情况与 multiEntry 无关:
- HTML 表单中
<input name="items[]">的数组提交行为 —— 这是服务器端或 JavaScript 手动解析的约定 - JSON Schema 或 ORM 中的数组字段映射规则
- Vue/React 等框架对 v-model 数组绑定的响应式处理
- 任何 CSS、HTML 属性或 Web Components 的属性定义
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










