我见过两种访问Component
的方式:
import React from 'react';
class Foo extends React.Component {
...
}
和
import React, { Component } from 'react';
class Foo extends Component {
...
}
这两者之间是否存在差异(例如,可能在性能方面)?
答案 0 :(得分:5)
简答:不。
从另一方面看待它可能会使理解变得更容易。
如果您想象反应模块本身 - 它可能看起来像这样。
export const Component = () => {}; // the component class/function
const React = { Component: Component }; // the main react object
export default React;
请注意export
的使用。
默认 export
是React,因此可以在另一个模块中访问(或导入),如下所示:
import React from 'react';
组件是命名导出:Component
,因此可以通过以下方式在另一个模块中访问:
import { Component } from 'react';
但在这种情况下,Component也会附加到React对象。因此,您可以通过以下任何方式使用导入:
import React, { Component } from 'react';
class MyComp extends React.Component {}
class MyOtherComp extends Component {}
值得一提的其他几点:
import Cat from 'react';
。import { Component as Cat } from 'react';
答案 1 :(得分:1)
不,这只是您导入本地命名空间的问题。如果您已经在本地拥有一个名为Component的东西,那么您将无法执行后者。除此之外,它只是偏好,是否要列出最先导入的所有内容,或者能够轻松查看使用地点的内容。
答案 2 :(得分:0)
在第一个示例中,您通过import React
获得了整个导出,并通过react import调用Component
。在第二个示例中,您将从React单独导入Component
。这就是你不需要写React.Component
的原因。它是相同的,但以不同的方式导入。