React vs ReactDOM?

我有点新反应。我看到我们必须导入两件事才能开始,React并且ReactDOM,谁能解释其中的区别。我正在阅读React文档,但没有说。

逆天Near2020/03/11 10:53:28

react package保持react source为组件,状态,道具和一切反应的代码。

The react-dom package as the name implies is the glue between React and the DOM. Often, you will only use it for one single thing: mounting your application to the index.html file with ReactDOM.render().

Why separate them?

The reason React and ReactDOM were split into two libraries was due to the arrival of React Native (A react platform for mobile development).

阳光Itachi村村2020/03/11 10:53:28

来自React v0.14 Beta发布公告

当我们看到像包react-nativereact-artreact-canvas,和react-three,它很清楚,美和本质作出反应无关,与浏览器或DOM。

为了更清楚地说明这一点,并使其更易于构建更多React可以渲染的环境,我们将主要的react包分为两个部分:react和react-dom。

从根本上讲,React的想法与浏览器无关,它们恰好是将组件树呈现到其中的众多目标之一。ReactDOM包允许开发人员从React包中删除所有不必要的代码,并将其移至更合适的存储库中。

所述react包中包含React.createElementReact.createClass并且React.ComponentReact.PropTypesReact.Children,和与元件和组件类的其它辅助函数。我们将它们视为构建组件所需同构或通用帮助器。

react-dom软件包包括ReactDOM.renderReactDOM.unmountComponentAtNodeReactDOM.findDOMNode,和react-dom/server我们有服务器端渲染的支持ReactDOMServer.renderToStringReactDOMServer.renderToStaticMarkup

这两段说明了核心API方法从何而来v0.13

EvaGil2020/03/11 10:53:28

React和ReactDOM直到最近才被拆分为两个不同的库。在v0.14之前,所有ReactDOM功能都是React的一部分。这可能会引起混乱,因为任何过时的文档都不会提及React / ReactDOM的区别。

顾名思义,ReactDOM是React和DOM之间的粘合剂。通常,您只会将其用于一件事情:使用进行安装ReactDOM.render()ReactDOM的另一个有用功能是ReactDOM.findDOMNode()可以用来直接访问DOM元素。(有些事情您应该在React应用程序中谨慎使用,但是可能有必要。)如果您的应用程序是“同构的”,那么您还可以ReactDOM.renderToString()在后端代码中使用。

对于其他所有内容,都有React。您可以使用React定义和创建生命周期挂钩等元素,即React应用程序的内胆。

React和ReactDOM被分成两个库的原因是由于React Native的到来。React包含Web和移动应用程序中使用的功能。ReactDOM功能仅在Web应用程序中使用。[ 更新:经过进一步的研究,很明显我对React Native的无知正在显示。对于Web和移动设备而言,拥有React程序包似乎比现在现实更令人向往。目前,React Native是一个完全不同的软件包。]

请参阅宣布v0.14版本的博客文章:https ://facebook.github.io/react/blog/2015/10/07/react-v0.14.html

Green蛋蛋2020/03/11 10:53:28

为了更简洁,react用于组件,而react-dom用于呈现DOM中的组件。“反应域”充当组件和DOM之间的粘合剂。您将使用react-dom的render()方法来渲染DOM中的组件,而这就是您从开始时就需要知道的一切。

西门泡芙Jim2020/03/11 10:53:28

ReactDOM模块公开了特定于DOM的方法,而React具有旨在由React在不同平台(例如React Native)上共享的核心工具。

http://facebook.github.io/react/docs/tutorial.html