当前位置:  开发笔记 > 前端 > 正文

React vs ReactDOM?

如何解决《ReactvsReactDOM?》经验,为你挑选了4个好方法。

我有点新的反应.我看到我们必须导入两件事才能开始,React并且ReactDOM,任何人都可以解释它们之间的区别.我正在阅读React文档,但它没有说.



1> David L. Wal..:

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的无知表现出来了.让网络和移动通用的React包更像是一种渴望,而不是现实.React Native目前是一个完全不同的包.]

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



2> Dan Prince..:

来自React v0.14 Beta发布公告.

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

为了使这一点更加清晰,并且更容易构建React可以渲染的更多环境,我们将主反应包分成两部分:react和react-dom.

从根本上说,React的概念与浏览器无关,它们恰好是渲染组件树的众多目标之一.ReactDOM包允许开发人员从React包中删除添加非必要代码并将其移动到更合适的存储库中.

所述react包中包含React.createElement,React.createClass并且React.Component,React.PropTypes,React.Children,和与元件和组件类的其它辅助函数.我们将这些视为构建组件所需的同构或通用助手.

react-dom软件包包含ReactDOM.render,ReactDOM.unmountComponentAtNodeReactDOM.findDOMNode,并且在react-dom/server我们的服务器端渲染支持中使用ReactDOMServer.renderToStringReactDOMServer.renderToStaticMarkup.

这两段解释了核心API方法v0.13最终的位置.


从React v15.4.0开始,React不再有`ReactDOM` - https://facebook.github.io/react/blog/2016/11/16/react-v15.4.0.html

3> Alireza..:

v0.14之前,它们是ReactJs主文件的一部分,但是在某些情况下,我们可能不需要两者,它们将它们分开,并且版本从0.14开始,这样,如果我们只需要其中一个,则我们的应用程序会变小,因为仅使用其中之一:

var React = require('react'); /* importing react */
var ReactDOM = require('react-dom'); /* importing react-dom */

var MyComponent = React.createClass({
  render: function() {
    return 
Hello World
; } }); ReactDOM.render(, node);

React包包含:React.createElement,React.createClass,React.Component,React.PropTypes,React.Children

React-dom包包含:ReactDOM.render,ReactDOM.unmountComponentAtNode,ReactDOM.findDOMNode和react-dom / server,其中包括:ReactDOMServer.renderToString和ReactDOMServer.renderToStaticMarkup。



4> Daniel..:

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

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

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有