Jest też sporo wad:
- duże kłopoty z SEO
- "podstrony" nie mają swojego linku, unikalnego URL
- brak historii, funkcje przeglądarki Back, Forward nie działają
- start strony jest wolniejszy bo trzeba ściągnąć więcej danych na pocz
A skąd takie przekonanie :)?
Problemy z seo wynikają z tego, że wiele osób nie robi po prostu Server Side Rendering, a jak to zrobisz np. z React to klient dostaje normalnego html i google wszystko widzi :)
Co do punktu 2 i 3 to nie zgodzę się - poczzytaj np. o react-router w React czy innych analogicznych rozwiązaniach z pozostałych technologiach.
Z tym startem też bym nie dramatyzował. No chyba, że np. w takim React zapuścimy klientowi pełną wersję react bez żadnej minifikacji itp. Rozmiar można łatwo zmniejszyć np. poprzez minifikację plików i do tego jakąś kompresję gzip.
Ale oczywiście nie są to technologie do wszystkiego. Na przykład nie ma wg mnie sensu ładować React do małego portfolio czy wizytówki mechanika, gdzie wszystko opykasz w parudziesięciu linijkach JS, ewentualnie wspomaganego jQuery jak ktoś bardzo chce.
Ale z kolei już przy bardziej rozbudowanych apkach zauważa się potęgę takich technologii. Jest to kolejna warstwa abstrakcji nałożona na całą apkę, ale wg mnie warto. A jak dodasz sobie np. redux w React + react-router + thunka itp. to robi się bardzo miło, oczywiście nie zapominając o SSR :)