Антон Литвиненко, Alpine имеет совершенно иной синтаксис, но я думаю вы об знаете... Ко всему прочему, оно уже почти как riot.js. Где вы там "микро" разглядели я х3...
Андрей Ширяев, riot.js будет лучшем выбором, особенно если проект будет развиваться в дальнейшем! Riot является легковесным, но при этом, имеет намного больше фич нежели Alpine. Имхо, Alpine кусок Г, годится только для ооооооооочень маленьких проектов, его быстро перерастаешь! Ну и багов там конечно достаточно, однажды был мажорный релиз, в котором полностью не работал ватчер. Одним словом, проект одного человека....
Я бы еще предложил на Svelte посмотреть. Его отличительной особенностью является, что это не просто фреймворк или библиотека, а это компилятор в vanilla DOM с практически нулевым рантаймом, как следствие - минимальные бандлы и максимальный перфоманс (за счет отсутствия рантайма).
Например переменная в шаблоне превращается в отдельную текстовую ноду, а ее реактивное обновление - в простую установку свойства textContent этой ноды. При этом по возможностям не уступает, а иногда и превосходит (как мне после него не хватает await в шаблонах) React и Vue.
Смотря какая задача, вполне возможно может хватить и пары строк кода. Дернуть нужные элементы, повесить им обработчик и выполнить код из дата атрибута через eval.