У меня есть несколько вложенных объектов, которые мне нужно перебрать для создания входных данных. Я упростил это до примера ниже. Я хотел бы установить tabIndexes в эти входы.
<div v-for="(iv, ik, ii) in {a: 'x', b: 'x'}" :key="ii">
<div v-for="(jv, jk, ji) in {a: 'y', b: 'y'}" :key="ji">
<div v-for="(kv, kk, ki) in {a: 'z', b: 'z', c: 'z'}" :key="ki">
<input type="text" :tabindex="(ii * 100) + (ji * 10) + ki" />
<label>{{(ii * 100) + (ji * 10) + ki}}</label>
</div>
</div>
</div>
Каков наилучший способ установить мой tabindex на 0, 1, 2, 3 и т. д.? Я обнаружил, что установка третьего аргумента в v-for обеспечивает числовой индекс, но то, что у меня есть, кажется немного запутанным. Есть ли лучший способ сделать это?
Приведенное выше приводит к выводу, подобному следующему:
[___________] 0
[___________] 1
[___________] 2
[___________] 10
[___________] 11
[___________] 12
[___________] 100
[___________] 101
[___________] 102
[___________] 110
[___________] 111
[___________] 112
Который работает, но кажется менее чем идеальным. Я знаю, что клавиша табуляции будет работать по назначению, если они будут последовательными, а промежутки кажутся нормальными. Но есть ли более чистый способ получить от 1 до 12 вместо чисел в шахматном порядке, которые у меня есть? По сути, как текущий индекс (x++ и т. д.) каждый раз, когда я нажимаю?
Я попытался установить int в «данных», а затем метод для его увеличения, но быстро бросился в бесконечный цикл повторного рендеринга.
Спасибо.
tabindex="0"
для всех ваших<input>
элементов, вы получите именно тот эффект, который вам нужен. С точки зрения доступности установка индексов табуляции, отличных от 0 или -1, как правило, плохая вещь. - person Stephen Thomas   schedule 04.07.2018