Why limit yourself to a client side JS framework?
Certain server side frameworks such as rails let you build apps that feel very similar to client side js apps without having to use them.
Certain server side frameworks such as rails let you build apps that feel very similar to client side js apps without having to use them.
I can't speak for other frameworks but rails has turbolinks and also seamlessly handles the ability to send back pre-compiled html results to the client as a response to an xhr.
Basically you get the best of both worlds and it's all unobtrusive so all of your content is crawlable and you get a great user experience without having to do hacks or extra work.