React.Component 和 Component 之间有什么区别?

2023-12-03

我见过两种访问方式Component:

import React from 'react';

class Foo extends React.Component {
    ...
}

and

import React, { Component } from 'react';

class Foo extends Component {
    ...
}

两者之间有什么区别(例如性能方面)吗?


简短的回答:不。

从另一个角度看可能会更容易理解。

如果你想象一下反应模块本身 - 它可能看起来像这样。

export const Component = () => {};    // the component class/function

const React = { Component: Component };  // the main react object

export default React;

注意使用export.

The default 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 {}

其他几点值得一提:

  • 只能有一个default每个模块导出,但您可以导出许多变量。
  • The default导入时导出可以命名为任何名称。例如import Cat from 'react';.
  • 您可以通过执行以下操作来重命名命名导入:import { Component as Cat } from 'react';
  • 此行为并非 React 特有,而是 ES6 模块系统的一部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React.Component 和 Component 之间有什么区别? 的相关文章

随机推荐