I find the best approach is to render the initial view server-side and then render any future requests client-side with data from your API. That way your site will be super fast and can be indexed by search engines.
If you're using node.js then you can even use the exact same template rendering code.