在自定义组件上使用 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
不可靠。
如果其他人有更好的解释,请分享。
当使用 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
不可靠。
如果其他人有更好的解释,请分享。