Во-первых, я думаю, что вы имеете в виду shift
, а не unshift
.unshift
будет пытаться добавлять элементы в массив, а не удалять их.На самом деле это не имеет значения с точки зрения бесконечного цикла, любой метод будет иметь одинаковый эффект.
Вы создаете зависимость от массива, а затем модифицируете его.Его изменение вызовет повторную визуализацию.
Каждый раз, когда компонент выполняет повторную визуализацию, он перемещает другой элемент в / из массива.Даже если вызов shift
/ unshift
на самом деле ничего не изменит, он все равно будет считаться изменяющим массив.
Попробуйте:
computed: {
secondaryPerkSlots () {
const perksTree = this.$store.state.summonerRunes.find(
value => value.id === this.match.mainParticipant.stats.perkSubStyle
);
return perksTree.slots.slice(1)
}
}
с:
<div v-for='runes in secondaryPerkSlots'>
Это создаст новый массив, содержащий те же элементы, что и исходный массив, без первого элемента.
В качестве альтернативы вы можете поместить slice(1)
непосредственно в шаблон:
<div v-for='runes in secondaryPerks().slots.slice(1)'>
В любом случае я предлагаю вместо этого заменить метод на вычисляемое свойство.Вы также должны сбросить this
в вашем шаблоне.