React is pretty amazing.
It’s a great way to create declarative easy to understand user interfaces.
It’s pretty easy to learn with very little DSL (domain-specific language) and a tiny API surface.
That’s all well and good but, what makes React very interesting and insanely compelling is its ability to render outside of the DOM.
What does this mean for frontend developers?
Well, for starters, if you know JavaScript, you can now build native iOS and Android applications.
You are no longer bound to the browser. You no longer need to support IE8 (well, no promises there).
So, scratch-off “web developer” from your resume and replace it with DEVELOPER GOD
Where can React render?
Thanks to the hard work of the community, and the foresight of the React core team, a huge amount of React render targets (or bridges) exist:
- DOM
- Desktop
- iOS
- Android
- Canvas
- WebGL
- WebVR
- Watches
- TVs
- Hardware
- Terminal
- ART Drawing Library
- DOM, but using Web Workers
- Windows Desktop and mobile phones
- Children’s Coloring books… (ok this one is fake)
Disclaimer
This doesn’t mean you will necessarily be able to write one code base and have it run on all of these targets.
Bummer dude!
But it does allow for code sharing across platforms.
Awesome man!
Check out some open source react-native projects for how they handle this.
Did I miss any bridges?
If you know of any other React bridges, let me know in the comments below, and I can add them to the list.
Happy coding!