This seems an interesting topic, I actually attempted to implement an SPA using react using Suitelet(with Server and Client combined) but I had some trouble combining the client script api with react because of the structure so I stayed in just function based js.