最直接方式是用v-for="(value, key) in obj"并设:key="key";推荐原生遍历对象,无需转换;object.entries()适用于需过滤或排序的场景;避免仅用object.keys()/values()导致冗余或丢失键名。

Vue 模板中遍历对象获取键值对并渲染列表,最直接的方式是用 v-for 指令配合 (value, key) 语法,同时必须设置唯一的 :key。
直接用 v-for 遍历对象(推荐)
Vue 支持原生遍历对象,无需额外转换。模板中写法简洁明确:
-
v-for="(value, key) in obj":同时拿到属性值和属性名 -
:key="key":建议用key作唯一标识(对象属性名天然唯一且稳定) - 适用于静态配置、表单字段、元信息展示等场景
示例:
{{ key }}: {{ value }}
其中 userInfo = { name: '张三', email: 'zhang@example.com', role: 'admin' },会渲染出三条带键值的条目。
分析 Vue 3 Composition API 使用情况——审计响应式模式、可组合函数设计、ref 与 reactive 的选择、计算属性、watcher 使用及组件……
用 Object.entries() 辅助遍历(需计算属性)
当需要更灵活控制(比如过滤、排序键值对),可借助 Object.entries() 转为二维数组,在 computed 中预处理:
-
Object.entries(obj)返回[['key1', val1], ['key2', val2]]形式 - 模板中写成
v-for="([key, value], index) in entriesList" -
:key推荐用key(仍比用index更稳妥)
适合动态处理键值顺序或只展示部分属性的场景。
不推荐:仅用 Object.keys() 或 Object.values() 单独遍历
虽然可行,但会增加维护成本:
-
v-for="key in Object.keys(obj)"→ 需额外写obj[key]取值,模板变冗长 -
v-for="value in Object.values(obj)"→ 完全丢失键名,无法做 label 显示或条件判断 - 两者都绕开了 Vue 对对象响应式的直接支持,属于“退化用法”
注意 key 的选择逻辑
:key 不是为了“让 v-for 跑起来”,而是帮 Vue 正确追踪节点身份。对象遍历时:
- 用
:key="key"是最佳实践——属性名稳定、唯一、语义清晰 - 避免用
:key="index":对象属性顺序不保证,重排时易错乱 - 不用
:key="value":值可能重复(如多个字段同为null或'')
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










