亲宝软件园·资讯

展开

React 和 ReactDOM 的区别

奔跑的瓜牛 人气:1
如果你是 React 的初学者,一定会对 React 和 ReactDOM 感到迷惑。为什么要分成两个包呢?害得我还要引入两次,说好的减轻开发人员负担呢,这丫的在搞什么飞机。带着这个疑问,我们一起来康康 React 的“野心”。 ### ReactDOM独立的历史原因 React 在v0.14之前是没有 ReactDOM 的,所有功能都包含在 React 里。从v0.14(2015-10)开始,React 才被拆分成React 和 ReactDOM。为什么要把 React 和 ReactDOM 分开呢?因为有了 ReactNative。React 只包含了 Web 和 Mobile 通用的核心部分,负责 Dom 操作的分到 ReactDOM 中,负责 Mobile 的包含在 ReactNative 中。**具体参考v0.14的release**:[React v0.14 - React Blog](https://reactjs.org/blog/2015/10/07/react-v0.14.html)。**
**
ReactDom 只做和浏览器或DOM相关的操作,例如:ReactDOM.render() 和 ReactDOM.findDOMNode()。如果是服务器端渲染,可以 ReactDOM.renderToString()。React 不仅能通过 ReactDOM 和Web页面打交道,还能用在服务器端SSR,移动端ReactNative和桌面端Electron。 e.g:
Web端React代码 ```javascript import React from 'react'; import {Text, View} from 'react-dom'; const App = () => (

Hello React

) ReactDom.render(, document.getElementById('root')); ``` 移动端的ReactNative代码: ```javascript import React from 'react'; import ReactNative from 'react-native'; const WelcomeScreen = () => ( Hello ReactNative ); ``` 相同的是都需要`import React from 'react'`。
而Web应用需要`import ReactDOM from 'react-dom'`;
Mobile应用需要`import {Text, View} from 'react-native'` ### React API `React`是 React 库的入口,你可以使用`