vue разные имена переходов для одного и того же компонента

Можно ли применить 2 имени перехода для 1 элемента? У меня есть 3 элемента li, и я хочу, чтобы у всех них был одинаковый отпуск, но только у верхнего элемента был определенный вход. Например, я хочу, чтобы у всех них был mizi-отпуск, но только у самого верхнего, чтобы был pizi-enter. Я застрял в этой проблеме и не могу найти никаких примеров для этого. Если это невозможно, есть ли другой способ добиться того, что я ищу?

Моя последняя попытка была:

<transition :name="[idx ? '' : 'pizi', 'mizi']" mode="out-in">
    <li :key="msg.id" class="bigdiv">{{msg.content}} {{idx}}</li>
</transition>

Идентификатор передается как реквизит, верхний ли имеет идентификатор 0.

2 ответа

Используйте условие как это

idx>0 ? 'mizi' : 'pizi'

Переход 'Pizi' применяется для первого элемента. другие имеют "Мизи".

<transition :name="idx>0 ? 'mizi' : 'pizi'" mode="out-in">
    <li :key="msg.id" class="bigdiv">{{msg.content}} {{idx}}</li>
</transition>

а также

.pizi-enter-active{
//DIFFERENT ANIMATION 
}

.pizi-leave-active, .mizi-leave-active{
//SAME ANIMATION FOR ALL ELEMENTS
}

Вы можете сделать это с помощью CSS. Просто отдай все li {} элементы перехода Mizi, а затем переопределить это для li:first-child {} элементы с переходом пизи.

Другие вопросы по тегам