Что происходит с проектом Bootstrap-Vue? Стоит ли рассчитывать на эту библиотеку?
При разработке приложений на Vue2, я предпочитал использовать как фреймворк Bootstrap 4-ой версии, т.к. это проверенное годами решение с хорошей документацией и поддержкой.
Естественно, для удобной работы с компонентами, я использовал библиотеку Bootstrap-Vue, которая имеет хорошее покрытие тестами, популярная (более 13.6k звезд на Github) и имеющая хорошую документацию. Особенностью этой библиотеки является то, что они смогли в ней отвязать Bootstrap 4 от JQuery, благодаря чему убрали множество несовместимых вещей и увеличили скорость работы.
К сожалению ничто не вечно под луной. Со временем вышел Vue3 с улучшенной поддержкой TypeScript и прекрасным Composition API, а также вместе с ним вышел и Vuex4. Со стороны Twitter вышел Bootstrap5, который стал стал более компактным и в полной мере стал поддерживать CSS Variables, а также перестал зависеть от JQuery. А с версии Bootstrap 5.1 стали поддерживаться CSS Grid - что стало последней каплей моего терпения и я стал изучать варианты обновления.
Проблемы Bootstrap-Vue.
К сожалению, согласно статистике репозитория на Github, активная разработка остановилась фактически с января этого года и основные разработчики не проявляют серьезной активности. Конечно у них там автоматизировано обновление зависимостей с последующим тестированием (короче говоря, развернут CI/CD процесс).
Сообщество пытается завести все хотя бы с использованием @vue/compat, что в ограниченной мере позволяет использовать Vue2 библиотеки в Vue3. К сожалению минусов у этого подхода большое количество, т.к. Vue2 и Vue3 имеют достаточно большое количество различий и Compat Mode вносит некоторое количество ограничений, несовместимостей и просто сюрпризов.
Конечно же Compat Mode в Vue3 совсем не добавляет радости при одновременном использовании еще и TypeScript с Vuex и тем-же Vue-i18n... В общем, всеравно на определенном этапе встает вопрос в поддержке чистого Vue3&Vuex4&Bootstrap5 со всеми возможностями Composition API, ибо количество костылей на квадратный километр кода начнет превышать разумные пределы.
Использование напрямую Bootstrap 5 с Vue3 без использования Bootstrap-Vue.
Т.к. Bootstrap 5 перестал зависеть от JQuery и еще меньше в себе стал содержать "магии", нам никто не мешает теперь напрямую использовать Bootstrap5. Из минусов, конечно вы лишаетесь удобного именования bootstrap элементов как полноценных веб-компонентов:
<!-- Bootstrap-vue button component -->
<b-button variant="danger">Кнопка</b-button>
<!-- Bootstrap 5 button without any web-components -->
<button type="button" class="btn btn-danger">Danger</button>
С другой стороны вы в своем проекте избавляетесь от одной большой зависимости и вполне можете использовать всю мощь Vue с его Composition API и Vue 3 Teleport Feature - благодаря которым можно делать намного более чистую и простую работу с модальными окнами. Да и более намного более лучшая поддержка TypeScript - это довольно таки сильный аргумент.
Заключение
В настоящее время я не рекомендую завязываться на Bootstrap-Vue из-за туманного будущего у этой библиотеки. Поэтому можно посмотреть в сторону MDBootstrap (дорого и спорно), либо напрямую использовать Bootstrap 5.
Тем не менее если проект Bootstrap-Vue сможет выкарабкаться - это будет хорошей новостью, т.к. разработчики уже доказали, что могут сделать качественную и стабильную библиотеку.