我对反应有点陌生。我看到我们必须导入两个东西才能开始,React和ReactDOM,有人能解释一下区别吗?我正在阅读React文档,但它没有说。
当前回答
看起来他们已经将React分为React和React -dom包,所以你不必在非dom特定的情况下使用dom相关的部分,比如这里的https://github.com/Flipboard/react-canvas 他们从哪里进口
var React = require('react');
var ReactCanvas = require('react-canvas');
如你所见。没有react-dom。
其他回答
React: React是一个javascript库,旨在构建更好的用户界面。
React-DOM: React-DOM是React的一个免费库,它将React粘合到浏览器DOM上
我们正在使用React,每当我们使用render()或findDOMNode()等方法时,我们都在使用React- dom。
当我们看到React -native、React -art、React -canvas和React -three这样的包时,很明显,React的美丽和本质与浏览器或DOM无关。 为了更清楚地说明这一点,也为了更容易地构建更多React可以渲染的环境,他们将主要的React包分为两个:React和React -dom。
React和ReactDOM最近才被分成两个不同的库。在v0.14之前,所有的React功能都是React的一部分。这可能是一个困惑的来源,因为任何稍微过时的文档都不会提到React / ReactDOM的区别。
顾名思义,ReactDOM是React和DOM之间的粘合剂。通常,你只会用它做一件事:用ReactDOM.render()安装。ReactDOM的另一个有用特性是ReactDOM. finddomnode(),您可以使用它直接访问DOM元素。(在React应用程序中应该少用,但可能是必要的。)如果你的应用是“同构”的,你也可以在后端代码中使用ReactDOM.renderToString()。
对于其他的事情,有React。你使用React来定义和创建你的元素,用于生命周期钩子等,即React应用程序的核心。
React和React dom被分成两个库的原因是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
在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 <div>Hello World</div>;
}
});
ReactDOM.render(<MyComponent />, node);
React包包含:React。createElement,反应。createClass,反应。组件,反应。proptype,反应。孩子们
React-dom包包含:渲染,ReactDOM。unmountComponentAtNode ReactDOM。findDOMNode和react-dom/server,包括:ReactDOMServer。renderToString和ReactDOMServer.renderToStaticMarkup。
看起来他们已经将React分为React和React -dom包,所以你不必在非dom特定的情况下使用dom相关的部分,比如这里的https://github.com/Flipboard/react-canvas 他们从哪里进口
var React = require('react');
var ReactCanvas = require('react-canvas');
如你所见。没有react-dom。
更简洁地说,react用于组件,react- DOM用于在DOM中呈现组件。'react-dom'充当组件和DOM之间的粘合剂。您将使用react-dom的render()方法来渲染DOM中的组件,这就是您开始使用它时所需要知道的全部内容。
推荐文章
- 如何配置历史记录?
- React钩子:从回调中访问最新状态
- React-Native:应用程序未注册错误
- ReactJS和公共文件夹中的图像
- React: 'Redirect'没有从' React -router-dom'中导出
- 如何在React中使用钩子强制组件重新渲染?
- React组件中使用TypeScript的默认属性值
- 反应钩子-正确的方式清除超时和间隔
- 在React.js中正确的img路径
- 在React.js中更新组件onScroll的样式
- onClick ReactJS调用多个函数
- 为什么React 16中的Fragments比容器div更好?
- 如何在ReactJS中验证嵌套对象的PropTypes ?
- 如何在ReactJS中从“外部”访问组件方法?
- 'React'指的是一个UMD全局,但当前文件是一个模块