在自定义组件上使用 v-for,我可以访问组件内部“:key”的值吗?

Using v-for on a custom component, can I access the value of ":key" inside of the component?

当使用 v-for 创建自定义组件列表时,我经常发现自己将 item.id 绑定到我的 :key 的值:id 道具。我想知道我是否(如果可以,如何)可以访问 key 的值,也许作为组件内部的一个道具。这将有效地为我省去必须在每个使用 v-for 指令的组件上创建 id 道具的麻烦。

<my-component v-for="item in items" :key="item.id" :id="item.id"></my-component>
// MyComponent.vue
props: ['key']

key 注册为道具并在应用程序中使用 this.key 会产生 undefined 的值。很明显我不能简单地引用 key 作为道具。

建议?

我一直在询问,看起来 key 的值更多地用于 Vue 的虚拟 DOM,这使得它作为数据 属性 在组件本身。因为虚拟 DOM 可以改变,所以 key 的值可能会与数据的预期 id 属性 不同步,如果 Vue 发现这样做很有效的话。这使得使用它来引用数据中特定对象的 id 不可靠。

如果其他人有更好的解释,请分享。