javascript - 如何在具有多个 div 的 v-for 中添加 :key
问题描述
我想制作没有任何 html 元素的 v-for 循环,所以我决定使用 <template 作为父级。我不知道为这个循环分配 :key 。我不能将它分配给模板和循环内的每个 div。有任何想法吗?
<template
v-for="{ id, text, option, percentage, value } in reports"
>
<div class="table-row__index">
{{ id }}
</div>
<div class="table-row__title">
<p>{{ text }} - <strong>{{ option }}</strong></p>
</div>
<div class="table-row__info">
{{ percentage }}%
</div>
<div class="table-row__info">
{{ value }}
</div>
</template>
解决方案
作为一个好的做法,我们应该总是在里面有一个父元素。但是由于您的限制,可以按照官方文档中的说明在模板上使用 for 循环
https://vuejs.org/v2/guide/list.html#v-for-on-a-lt-template-gt
在这种情况下,必须将任何键添加到子元素/组件中,这是官方推荐的。
请参阅此示例,并将键添加到您的 div 的内部模板。
new Vue({
el: '#app'
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<template v-for="n in 5">
<span :key="'number' + n">{{ n }}</span>
<span :key="'dot' + n">. </span>
</template>
</div>
推荐阅读
- python - 一次返回一个单词
- reactjs - 如何在 React 中加载和播放 Youtube 视频
- ruby-on-rails - 如何修复 rqrcode gem 的“未定义方法 `as_png'”
- java - 使用 Jsoup 进行网页抓取,无法获取搜索结果
- c - 通过C中的函数将值分配给整数数组
- swift - 组合等效的 RxJS iif
- python - 使用apply检查熊猫系列中的每一行是否包含列表中的字符串?
- ios - 如何在 SwiftUI 中使用 Toast-Swift?
- mobile - 在 CSS 中设置的背景图像在 Edge 移动设备中不工作,但在 Chrome 中工作
- java - 如何匹配java中的双引号?