Chore: provide a key with v-for (#11891)

pull/11957/head
k-okina 2018-07-11 16:17:20 +09:00 committed by hetech
parent 9da7c48be1
commit 1f8c7ba598
7 changed files with 40 additions and 19 deletions

View File

@ -142,7 +142,10 @@
</li> </li>
</ul> </ul>
</li> </li>
<li class="nav-item" v-for="item in data"> <li
class="nav-item"
v-for="(item, key) in data"
:key="key">
<a v-if="!item.path && !item.href" @click="expandMenu">{{item.name}}</a> <a v-if="!item.path && !item.href" @click="expandMenu">{{item.name}}</a>
<a v-if="item.href" :href="item.href" target="_blank">{{item.name}}</a> <a v-if="item.href" :href="item.href" target="_blank">{{item.name}}</a>
<router-link <router-link
@ -153,7 +156,10 @@
v-text="item.title || item.name"> v-text="item.title || item.name">
</router-link> </router-link>
<ul class="pure-menu-list sub-nav" v-if="item.children"> <ul class="pure-menu-list sub-nav" v-if="item.children">
<li class="nav-item" v-for="navItem in item.children"> <li
class="nav-item"
v-for="(navItem, key) in item.children"
:key="key">
<router-link <router-link
class="" class=""
active-class="active" active-class="active"
@ -164,13 +170,18 @@
</li> </li>
</ul> </ul>
<template v-if="item.groups"> <template v-if="item.groups">
<div class="nav-group" v-for="group in item.groups"> <div
class="nav-group"
v-for="(group, key) in item.groups"
:key="key"
>
<div class="nav-group__title" @click="expandMenu">{{group.groupName}}</div> <div class="nav-group__title" @click="expandMenu">{{group.groupName}}</div>
<ul class="pure-menu-list"> <ul class="pure-menu-list">
<li <li
class="nav-item" class="nav-item"
v-for="navItem in group.list" v-for="(navItem, key) in group.list"
v-if="!navItem.disabled"> v-if="!navItem.disabled"
:key="key">
<router-link <router-link
active-class="active" active-class="active"
:to="base + navItem.path" :to="base + navItem.path"

View File

@ -9,15 +9,17 @@
<tbody> <tbody>
<tr> <tr>
<th v-if="showWeekNumber">{{ t('el.datepicker.week') }}</th> <th v-if="showWeekNumber">{{ t('el.datepicker.week') }}</th>
<th v-for="week in WEEKS">{{ t('el.datepicker.weeks.' + week) }}</th> <th v-for="(week, key) in WEEKS" :key="key">{{ t('el.datepicker.weeks.' + week) }}</th>
</tr> </tr>
<tr <tr
class="el-date-table__row" class="el-date-table__row"
v-for="row in rows" v-for="(row, key) in rows"
:class="{ current: isWeekActive(row[1]) }"> :class="{ current: isWeekActive(row[1]) }"
:key="key">
<td <td
v-for="cell in row" v-for="(cell, key) in row"
:class="getCellClasses(cell)"> :class="getCellClasses(cell)"
:key="key">
<div> <div>
<span> <span>
{{ cell.text }} {{ cell.text }}

View File

@ -45,7 +45,8 @@
@click="handleClick('seconds', { value: key, disabled: false })" @click="handleClick('seconds', { value: key, disabled: false })"
v-for="(second, key) in 60" v-for="(second, key) in 60"
class="el-time-spinner__item" class="el-time-spinner__item"
:class="{ 'active': key === seconds }">{{ ('0' + key).slice(-2) }}</li> :class="{ 'active': key === seconds }"
:key="key">{{ ('0' + key).slice(-2) }}</li>
</el-scrollbar> </el-scrollbar>
</template> </template>
<template v-if="arrowControl"> <template v-if="arrowControl">
@ -58,7 +59,8 @@
<li <li
class="el-time-spinner__item" class="el-time-spinner__item"
:class="{ 'active': hour === hours, 'disabled': hoursList[hour] }" :class="{ 'active': hour === hours, 'disabled': hoursList[hour] }"
v-for="hour in arrowHourList">{{ hour === undefined ? '' : ('0' + (amPmMode ? (hour % 12 || 12) : hour )).slice(-2) + amPm(hour) }}</li> v-for="(hour, key) in arrowHourList"
:key="key">{{ hour === undefined ? '' : ('0' + (amPmMode ? (hour % 12 || 12) : hour )).slice(-2) + amPm(hour) }}</li>
</ul> </ul>
</div> </div>
<div <div
@ -70,7 +72,8 @@
<li <li
class="el-time-spinner__item" class="el-time-spinner__item"
:class="{ 'active': minute === minutes }" :class="{ 'active': minute === minutes }"
v-for="minute in arrowMinuteList"> v-for="(minute, key) in arrowMinuteList"
:key="key">
{{ minute === undefined ? '' : ('0' + minute).slice(-2) }} {{ minute === undefined ? '' : ('0' + minute).slice(-2) }}
</li> </li>
</ul> </ul>
@ -83,9 +86,10 @@
<i v-repeat-click="increase" class="el-time-spinner__arrow el-icon-arrow-down"></i> <i v-repeat-click="increase" class="el-time-spinner__arrow el-icon-arrow-down"></i>
<ul class="el-time-spinner__list" ref="seconds"> <ul class="el-time-spinner__list" ref="seconds">
<li <li
v-for="(second, key) in arrowSecondList"
class="el-time-spinner__item" class="el-time-spinner__item"
:class="{ 'active': second === seconds }" :class="{ 'active': second === seconds }"
v-for="second in arrowSecondList"> :key="key">
{{ second === undefined ? '' : ('0' + second).slice(-2) }} {{ second === undefined ? '' : ('0' + second).slice(-2) }}
</li> </li>
</ul> </ul>

View File

@ -13,7 +13,8 @@
<button <button
type="button" type="button"
class="el-picker-panel__shortcut" class="el-picker-panel__shortcut"
v-for="shortcut in shortcuts" v-for="(shortcut, key) in shortcuts"
:key="key"
@click="handleShortcutClick(shortcut)">{{shortcut.text}}</button> @click="handleShortcutClick(shortcut)">{{shortcut.text}}</button>
</div> </div>
<div class="el-picker-panel__body"> <div class="el-picker-panel__body">

View File

@ -13,7 +13,8 @@
<button <button
type="button" type="button"
class="el-picker-panel__shortcut" class="el-picker-panel__shortcut"
v-for="shortcut in shortcuts" v-for="(shortcut, key) in shortcuts"
:key="key"
@click="handleShortcutClick(shortcut)">{{ shortcut.text }}</button> @click="handleShortcutClick(shortcut)">{{ shortcut.text }}</button>
</div> </div>
<div class="el-picker-panel__body"> <div class="el-picker-panel__body">

View File

@ -9,12 +9,13 @@
:aria-valuemax="max" :aria-valuemax="max"
tabindex="0"> tabindex="0">
<span <span
v-for="item in max" v-for="(item, key) in max"
class="el-rate__item" class="el-rate__item"
@mousemove="setCurrentValue(item, $event)" @mousemove="setCurrentValue(item, $event)"
@mouseleave="resetCurrentValue" @mouseleave="resetCurrentValue"
@click="selectValue(item)" @click="selectValue(item)"
:style="{ cursor: rateDisabled ? 'auto' : 'pointer' }"> :style="{ cursor: rateDisabled ? 'auto' : 'pointer' }"
:key="key">
<i <i
:class="[classes[item - 1], { 'hover': hoverIndex === item }]" :class="[classes[item - 1], { 'hover': hoverIndex === item }]"
class="el-rate__icon" class="el-rate__icon"

View File

@ -45,7 +45,8 @@
</slider-button> </slider-button>
<div <div
class="el-slider__stop" class="el-slider__stop"
v-for="item in stops" v-for="(item, key) in stops"
:key="key"
:style="vertical ? { 'bottom': item + '%' } : { 'left': item + '%' }" :style="vertical ? { 'bottom': item + '%' } : { 'left': item + '%' }"
v-if="showStops"> v-if="showStops">
</div> </div>