Hi @hrishikeshchoudhari,
You pretty much have a good grasp on the scope. Everyone learns differently but since you are coming from Ember with a good amount of JS experience already, I’d recommend going through the excellent official ReactJS guides and tutorial first to understand “the React way” and be able to reason about the large amount of React code you can find in the wild.
After that, I’d go through the ReasonML guides and Dr. Axel’s book at http://reasonmlhub.com/exploring-reasonml/toc.html which gives you a very good basis in the language/syntax itself. Use the “try” playground on https://reasonml.github.io/en/try.html as you are experimenting with the constructs of the language to see how Bucklescript compiles your code to JS. I wouldn’t get discouraged about some of the more advanced topics you’ll find in the book… you won’t have to master poly variants or functors to ship LOB apps… you can come back to those later.
Next, I’d go for the official ReasonReact guides… which are written assuming you have familiarity with ReactJS already. This is where you will see how it differs from ReactJS. The router is discussed in those guides. Then I would go through the BuckleScript docs. You don’t have to memorize everything in there if you are not going to write bindings to external JS libraries immediately but you will want to know where all of these docs are to refer when reading code and looking up standard library functions.
With that foundation I would start reading the blog posts/articles that @gladimdim mentioned and study real ReasonReact projects you can find (search Github for “reason-react filename:bsconfig.json” sort by recently indexed) and packages you can find on Redex https://redex.github.io. Once I have a decent grasp of the fundamentals and “where to look” for docs from the above resources I find I learn best by cloning and studying the code of working projects and writing small POCs for my project.
I think you will find it’s well worth the learning effort for the major benefits in productivity and maintainability the inferred type system, compiler, and pragmatic functional/immutable (mostly) approach gives you.
If you need any help while learning, please feel free to ask on this forum or on the Discord chat!