在《029_列表渲染》文中提到:

v-for="(item, index) of xxx"

其中关于 of 分隔符 ,在网上也见到用 in 的,所以下面说说。

两种分隔符都合法

Vue 的 v-for 支持两种分隔符:

<!-- ✅ 使用 in(更常见,类 JS for...in 风格) -->
<li v-for="(item, index) in items" :key="item.id">{{ item }}</li>

<!-- ✅ 使用 of(类 JS for...of 风格,也完全合法) -->
<li v-for="(item, index) of items" :key="item.id">{{ item }}</li>

两者完全等价,Vue 官方文档也明确写了可以用 of 替代 in,更贴近 JavaScript 迭代器语法。

完整的标准格式

v-for="(当前项, 索引/键名) in/of 数据源" :key="唯一标识"
部分 说明
v-for="..." 指令声明
(item, index) 解构出的变量,括号可选(单个参数可不加)
inof 分隔符,二选一
items 数据源(数组、对象、数字、可迭代对象)
:key="yyy" 必填的 key 绑定,用于 diff 优化

实际开发中哪种多?

绝大多数项目用 in,因为:

  • Vue 官方教程和示例默认用 in
  • 早期版本只有 inof 是后来加的兼容写法
  • 团队习惯延续

但如果你觉得 for...of 语义更清晰(迭代数组元素而非索引),完全可以用 of,没有任何问题。

注:
上面内容只是理论上探讨,我还没实际验证,有空的时候验证。