React Native Compared to React

React 7,897 itself is platform-neutral: the react package knows components, props, state, hooks, context and reconciliation, and nothing about screens. A renderer connects it to a platform: react-dom writes to the DOM, react-native to native views. Everything from MERN Stack Development that lives in react carries over unchanged, from useState and custom hooks to Suspense and the React Compiler. What changes is everything the DOM provided.

What changes when React targets native views instead of the DOM
Concern React on the web React Native 36,878
Building blocks <div>, <span>, <img>, <input> <View>, <Text>, <Image>, <TextInput>
Styling CSS files, classes, cascade JavaScript objects, no cascade
Layout Block flow by default Flexbox only, flexDirection: 'column'
Events onClick, DOM events onPress, the touch responder system
Navigation URLs and the History API A navigator's stack (Expo Router 6,418 )

Three differences catch web developers most often. A raw string outside <Text> is an error, because native layout containers cannot hold loose text. Styles do not cascade: a color on a <View> does nothing for the text inside it, although a nested <Text> inherits from its parent <Text>. And there is no window or document: React Native supplies fetch, timers, console and WebSocket, but an npm 2,036 package that calls document.createElement fails at runtime. Pure JavaScript libraries just work; native ones must support the New Architecture (Development Builds).