Что плохо знаешь во Vue

Ответ

Компоненты высшего порядка (HOC) - редко использую, обычно предпочитаю Composition API.
Оптимизация рендеринга больших списков - знаю про v-for + key, но глубоко не разбирался в виртуальном скролле.
Кастомные директивы - писал простые, но сложные (например, drag-and-drop) обычно беру из библиотек.

Пример слабого места - кастомные transitions:

<transition name="fade">
  <!-- часто забываю про CSS-классы -->
  <div v-if="show">Content</div>
</transition>

<style>
.fade-enter-active { /* иногда путаю порядок классов */ }
.fade-leave-to { opacity: 0; }
</style>

Также слабое место - интеграция Vue с Web Components.

Ответ 18+ 🔞

Слушай, а вот эти компоненты высшего порядка, HOC там всякие — я их, блядь, как-то мимо проходил, честно говоря. Ну, Composition API мне ближе, там всё как-то понятнее, не надо эту ебучую обёртку вокруг всего накручивать. Просто берёшь и композируешь, в рот меня чих-пых!

А вот когда списки рендерить, которые дохуя большие... Ну, v-for с key — это святое, это да. Но вот эта вся хуйня с виртуальным скроллом — я в неё глубоко не нырял, признаюсь. Беру готовое, обычно, не изобретаю велосипед.

Кастомные директивы... Ну, простые — да, писал. Типа клика снаружи, фокуса. Но вот эта жесть, типа drag-and-drop — нахуй, извини, я не мазохист. Беру из библиотеки и не парюсь, волнение ебать.

А вот слабое место, где я реально могу обосраться — это кастомные переходы, transitions. Ну, вроде всё просто, а хуй там!

<transition name="fade">
  <!-- и вот тут я часто забываю, блядь, про CSS-классы, которые надо прописать -->
  <div v-if="show">Content</div>
</transition>

<style>
.fade-enter-active { /* а тут, сука, иногда путаю порядок этих ёбаных классов, честно */ }
.fade-leave-to { opacity: 0; }
</style>

Получается какая-то мартышлюшка: вроде элемент должен плавно исчезнуть, а он — херак! — и пропал. И сидишь, ебашь головой, почему. А оказывается, класс fade-leave-active не написал, пидарас шерстяной.

И ещё одна тема, где у меня доверия ебать ноль — это интеграция Vue с этими вашими Web Components. Там такой пиздец начинается, такая каша из атрибутов, событий и shadow DOM, что проще, блядь, на чистом JS написать, чем связать это всё в кучу. Чистая головная боль, в рот меня чих-пых!