【问题标题】:trying to understand: import React, {component} from 'React'; [duplicate]试图理解: import React, {component} from 'React'; [复制]
【发布时间】:2018-11-12 04:01:24
【问题描述】:

我正在研究如何让 React.js 与后端一起工作。我见过这样的语法:

从 'React' 导入 React, {component};

为什么会在此处列出 {component}?在我看来,您当然希望使用组件。所以我不知道为什么有 {component}。

我认为 import React from 'React' 就足够了……意思是“给我所有的 React”。但显然我在这里遗漏了某种概念。

谢谢。

【问题讨论】:

  • 不一样。我问为什么 React 和 {Component} 都是从 React 导入的,而不是简单地导入 React。这是一个与您所引用的问题类似的问题。但这是一个不同的问题,区别很重要。

标签: javascript reactjs import components


【解决方案1】:

Reactreact 包的默认导出,而 Component 是该包中的命名导出。你可以这样做

import React from 'react';

class MyClass extends React.Component { ... }

import React, { Component } from 'react';

class MyClass extends Component { ... }

阅读有关 JavaScript 导出的更多信息here

编辑:实际上,React 使用了一种不同的模式,称为在默认导出上公开 API,它与命名导出具有相同的导入约定 - 你可以查看它们的源 here

【讨论】:

  • 非常感谢。我也很困惑为什么代码说扩展组件而不是扩展 React.Component。所以这实际上澄清了让我感到困惑的两件事。
【解决方案2】:

也许是因为: class MyComponent extends Component {}class MyComponent extends React.Component {}

在每种情况下,您都需要Import React from 'react' :)

【讨论】:

  • 我的意思是,在每种情况下,你都需要Import React from 'react',但如果你不导入{component},你必须写extends React.Component
猜你喜欢
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 2020-03-10
  • 2020-12-28
  • 1970-01-01
  • 2018-12-25
  • 2020-04-04
相关资源
最近更新 更多