А более полный вариант вашего кода можно увидеть? - желательно целиком, на jsfiddle. Также совершенно неясно, что там у вас не работает - какое значение не меняется, где? Поподробнее бы.
Ну и что что отдельный компонент? Не надо зашивать данные блоков в data, вместо этого следует сделать их параметром. Тогда можно будет использовать в разных компонентах один и тот же объект.
А почему вы решили, что с помощью v-for нельзя сделать разную разметку в разных блоках? Можно. Например, каждый блок может быть отдельным компонентом. Типа так.
Это и есть "зацикливание". Переменная currlEl хранит в себе индекс текущего активного элемента. Чтобы получить следующий элемент, мы её увеличиваем на единицу. А чтобы после последнего элемента получать нулевой - берём остаток от деления на количество элементов.
Разумеется, можно было бы просто увеличивать на единицу, а потом проверять не равен ли currEl длине массива elements, и если да, то сбрасывать currEl в 0. Как-то так:
Вячеслав, да, я вижу вариант выше - там отслеживается последняя кликнутая textarea. Каким образом это позволит устанавливать в кликнутое состояние несколько полей ввода сразу - непонятно.
UPD. А-а-а, понял, что вы имели в виду под "находится могут несколько" - вообще, а не одновременно, как я подумал. Да, затупил я.