反应导入但不在index.js中使用

时间:2018-01-08 07:40:02

标签: reactjs

我开始使用reactJS

import React from 'react';
import ReactDOM from 'react-dom';

var App = ()=>{
   return <div> Hello !!</div>
}

ReactDOM.render(<App />, document.getElementById('root'));

在每个教程或项目中,每个人都在import React from 'react';,但没有人在当前文件React中使用index.js

2 个答案:

答案 0 :(得分:3)

  

...但在当前文件index.js

中使用了无处的React

如果问题是“为什么它有import React from 'react'?”,答案是:源代码没有直接使用React,但是一旦它被编译后它的版本是,因为一次JSX被编译,看起来像这样(如果我们只是转换JSX,而不是ES2015的东西):

import React from 'react';
import ReactDOM from 'react-dom';

var App = () => {
   return React.createElement(
      'div',
      null,
      ' Hello !!'
   );
}

ReactDOM.render(React.createElement(App, null), document.getElementById('root'));

请注意React.createElement的使用。 JSX <App />语法只是糖。

答案 1 :(得分:1)

我认为这可能是因为在转换jsx语法时,您实际上可以看到例如:<div className="exp"><img /></div>,将转换为:

React.createElement('div', {className: 'exp'}, React.createElement('img'));

所以,这将需要React对象。