如果“反应”是“反应”的默认导出,为什么我们不能使用其他名称而不是“反应”

Tin*_*s K 9 javascript reactjs

所以,我正在寻找这个问题的一些答案,发现在导入时,'React' 不需要在 {} 中,因为它是默认导出而不是命名导出,这是正确的,但我也看到了在导入默认导出时,我们可以在导入时使用任何名称。但在这种情况下,我们只能使用以下导入,

import React from 'react';
Run Code Online (Sandbox Code Playgroud)

并不是

import Somename from 'react';
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 8

可以通过这种方式导入 React,但是如果您使用的是 JSX,您还需要更新您的配置以告诉转译器您正在使用的“builder”函数不再React.createElement是 ,而是Somename.createElement。(如果你正在使用 Babel,你可以使用pragma指令来做到这一点。)这是因为,正如React 文档中所说,这是:

const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);
Run Code Online (Sandbox Code Playgroud)

被转译为:

const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);
Run Code Online (Sandbox Code Playgroud)

...所以React(或您在配置中将其更改为的任何名称)必须在 scope 中。除此之外,还好。