Перевод x-переходов Alpine.js в классы перехода Vue.js?

Итак, у меня небольшая концептуальная проблема. Я также признаю, что я в первую очередь бэкенд-разработчик и свободный фронтенд-разработчик, стремящийся лучше изучить принципы / фреймворки UI/UX и т. Д., Поэтому приношу извинения заранее, если это относительно простой вопрос.

У меня есть следующие x-transition пример, который был построен в Alpine.js:

<div
    x-show="open"
    x-transition:enter="transition ease-out duration-100"
    x-transition:enter-start="transform opacity-0 scale-95"
    x-transition:enter-end="transform opacity-100 scale-100"
    x-transition:leave="transition ease-in duration-75"
    x-transition:leave-start="transform opacity-100 scale-100"
    x-transition:leave-end="transform opacity-0 scale-95"
>...</div>

Я попытался перевести это на анимацию перехода в Vue.js

<transition
    name="custom-classes-transition"
    enter-class="transition ease-out duration-100"
    enter-active-class="transform opacity-0 scale-95"
    enter-to-class="transform opacity-100 scale-100"
    leave-class="transition ease-in duration-75"
    leave-active-class="transform opacity-100 scale-100"
    leave-to-class="transform opacity-0 scale-95"
>
    <div v-if="open>

    </div>
</transition>

Но, увы, ничего. Что делать?

2 ответа

Решение

Я думаю, это может быть то, что ты ищешь

<transition
    enter-active-class="transition duration-100 ease-out"
    leave-active-class="transition duration-75 ease-in"
    enter-class="transform opacity-0 scale-95"
    enter-to-class="transform opacity-100 scale-100"
    leave-class="transform opacity-100 scale-100"
    leave-to-class="transform opacity-0 scale-95"
>

Я думаю, что этот конкретный вопрос возникает из-за попытки использовать один из компонентов раздела героев пользовательского интерфейса Tailwind, но с использованием VueJS вместо Alpine (что и используется в пользовательском интерфейсе Tailwind).

в этом конкретном примере вам также придется изменить x-show и x-data Alpine для директивы v-if VueJs. (по крайней мере, так я заставил его работать).

Также вам нужно будет объявить свойство open в данных vue следующим образом: (Имя моего компонента было Cover вместо HeroSection)

export default {
  name: 'Cover',
  data() {
    return {
      open: false
    }
  }
}
Другие вопросы по тегам