When I started working with React Native, I had a good understanding of how the React worked in the HTML browser context. Since I was familiar with React patterns, I thought I might have an easier time getting started with React Native development. I felt like that was true, but I wanted to share a few things I ran into while getting started.
The inspector sucks
react-devtoolsto get a somewhat more workable tooling that works like the React browser extension, but it's not feature-complete either. You'll still need to debug with Safari for iOS sometimes and wrangle with the weird WiFi/host/port settings to switch between debugging in a simulator and a real device.
The React virtual DOM tree is going to have a lot more noise, since many library (or even core) components are made up of other components. You'll see all the abstractions in the tree.
Throw out concepts of primitive HTML elements for React Native because they aren't the same.
On the surface they seem like "equivalents", it's not really helpful to say "this HTML component is this in React Native" since you can't rely on them having the same behavior. To illustrate how this falls apart quickly:
Somewhat related to above, not all CSS rules apply. To name a few:
none. There's no
inline, so get used to Flexbox properties.
Some properties that would "pass through", as you would expect to be able to do in the browser, doesn't in React Native.
Bonus: Keep your project up-to-date with the latest version of React Native
React Native has its quirks, and even with prior React experience it still has a somewhat substantial learning curve. However, I actually found developing in React Native a pleasant experience overall, dare I say fun. Give it a shot!