反应与反应DOM混淆
我使用ES6 babel反应,现在对于新版本反应,反应DOM不再是它的一部分。我对以下代码的怀疑是,它是否是第一行要求?因为无处我需要React,但最后一行我需要ReactDOM。反应与反应DOM混淆
const React = require('react')
const ReactDOM = require('react-dom')
const App =() => {
return (
<div className='app-container'>
<div className='home-info'>
<h1 className='title'>sVideo</h1>
<input className='search' type='text' placeholder='Search' />
<button className='browse-all'> or Browse All</button>
</div>
</div>
)
}
ReactDOM.render(<App />, document.getElementById('app'))
从版本0.14
起的反应分为两部分:反应和ReactDOM。您正在使用ReactDOM to render you HTML element
。因此,您在组件中对import ReactDOM
绝对有意义。但是就React而言,虽然您并未直接使用React,但它是间接使用的,因为无论您在您的return statement will be transpiled into React.createElement
函数中编写哪个函数,都会创建实际的DOM元素。
现在你可以看到这一点,如果你省略反应。在你的代码,你会看到一个错误,
反应不存在
,它会给你React is not recognised in React.createElement.
希望你了解它。
从ReactDOM
文档:
这个包作为DOM相关的渲染通道的入口点。它的目的是与同构React配对,它将作为对npm的反应而发运。
因此,您的ReactDOM
专门用于渲染的DOM相关路径。这使用来与React包本身紧密结合,但React中内置的DOM已被弃用。
现在,Facebook将ReactDOM单独作为自己的软件包发布,因此,如果您计划渲染任何React,则需要将其包含在您的应用中。而且你也一定需要React
本身 - ReactDOM
只是DOM方面。
这是reddit post that explains the separation from React and ReactDOM。
React团队正致力于将所有与DOM相关的东西提取到名为ReactDOM的单独库中。 0.14是图书馆分裂的第一个版本。
小有趣的事实,因为他们希望支持向后兼容性,他们不停地做出反应的内部DOM,但使用它in a funny way震慑人心。
他们是从0.14版本分开,对于任何反应的项目,则需要包括,ReactDOM是铺设在阵营,并阵营,没有ReactDOM不能被渲染到DOM ,所以答案是很大的是的!
是的,它是必需的。返回语句被转译为'React。createElement'和其他语句。 ReactDOM也依赖于React。 – Li357