I heard that React is a great library when it comes to building isomorphic apps. Can someone please explain what isomorphic apps actually are and how React is able to help us build them?
I created a simple demo last night, you may take a look. For example, this page, when you you open it, it's already rendered on the server:
http://recorder.mvc-works.org/guide.html
But as you click on the entries on the sidebar, it renders without page refreshing. And if you reload the page with "Command+r", you will get a page from server that's already rendered into HTML.
So it renders on both sides, on the server and in browsers. That's a real example for "isomorphic".
In order to render the same HTML on both sides, and with a same copy of the code, you have to make the code decoupled enough from the environments. Otherwise the code throws errors for reason like document is not defined or something. And React is just good at it.
isomorphic means something like "replacable with something equal" in math. the idea is to replace certain part and get the same output.
for example: object orientated programming and functional programming are isomorphic. you can get the same output from both.
in js they talk about isomorphic rendering where you render the dom on the server side to reduce loading time and bootstrap the framework on the existing dom.
that means in react you have the virtual dom from the server so instead of rendering on the client, you can render on the server so the customer does not get stuck on a 'loading' page
Mikhail Medvedev
infused.io
There is actually a lot of material available, including youtube videos. I recommend you have a search for "react isomorphic" and go from there. For the record, "universal" means a similar thing, but also encompasses mobile devices with the use of react-native.
All it means is we render the application HTML on the server and send it straight to the client for client's react to pick up and do less legwork. Faster initial load times and the benefit of having a single code base. This is essentially how we used to do it by rendering our HTML in some PHP backend (wordpress, laravel, zend, sapphire etc) and then using jquery on the client to find some dom nodes and attach interactions to them. Presently this process is more meaningful and less fragmented, so this pattern is back.
Just some examples from first page of results: