我注意到React可以这样导入:
import * as React from 'react';
Run Code Online (Sandbox Code Playgroud)
...或像这样:
import React from 'react';
Run Code Online (Sandbox Code Playgroud)
第一个导入模块中的所有内容react(请参阅:导入整个模块的内容)
似乎这两种方法是不同的,并且根本上是不兼容的。
为什么它们都起作用?
请参考源代码并解释该机制...我有兴趣了解其工作原理。
更新资料
这与import *作为'react'的反应与import'react'的反应之间的区别不是重复的
ES6常规模块信息回答了该问题。
我在问使react模块像这样工作的机制。在这里,它似乎与源代码中的 “ hacky”导出机制有关,但尚不清楚如何将整个模块导入到默认的导出中React,以及如何将这两种方法都可以与转译JSX等一起使用。