In my experience the sweet spot nowadays is to use a traditional batteries included framework such as Django/laravel/rails with Inertia, which basically just replaces the template part of those frameworks by a modern components framework such as Vue, react, etc.
We are using this approach in one of our projects at work and it’s been working great.