Javascript JS中无名导入和导出的工作原理

Javascript JS中无名导入和导出的工作原理,javascript,reactjs,firebase,Javascript,Reactjs,Firebase,我们正在学习Firebase以及如何将其与React连接起来。后来,我看到了以下代码片段: import firebase from 'firebase/app'; import 'firebase/firestore'; import 'firebase/auth'; 我对上述代码感到有些困惑,因此想问一个问题。首先,这怎么可能 import 'firebase/firestore'; import 'firebase/auth'; 自动附加到firebase变量,也就是说,通过使

我们正在学习Firebase以及如何将其与React连接起来。后来,我看到了以下代码片段:

import firebase from 'firebase/app';
import 'firebase/firestore';
import 'firebase/auth';
我对上述代码感到有些困惑,因此想问一个问题。首先,这怎么可能

import 'firebase/firestore';
    import 'firebase/auth';
自动附加到firebase变量,也就是说,通过使用firebase,我们可以访问app、firestore和auth,因为firestore和auth的导入没有名称

import 'firebase/firestore';
这意味着在firebase/firestore中运行代码,我不在乎它是否导出任何内容;它正在运行的代码是,该代码的部分功能是从@firebase/app导入firebase并向其注册。导入相同的firebase对象,因此添加到该对象的任何内容也可供您使用

他们用于将firestore添加到firebase的代码行如下:

export function registerFirestore(instance: FirebaseNamespace): void {
  configureForFirebase(instance);
  instance.registerVersion(name, version);
}

registerFirestore(firebase);
要准确理解它们在做什么,需要遍历它们的代码库以查看调用的内容,但我可以演示一个简化的等价物,如下所示:

// File 1, the equivalent of firebase/app
export default {}; // no properties on it.
这意味着在firebase/firestore中运行代码,我不在乎它是否导出任何内容;它正在运行的代码是,该代码的部分功能是从@firebase/app导入firebase并向其注册。导入相同的firebase对象,因此添加到该对象的任何内容也可供您使用

他们用于将firestore添加到firebase的代码行如下:

export function registerFirestore(instance: FirebaseNamespace): void {
  configureForFirebase(instance);
  instance.registerVersion(name, version);
}

registerFirestore(firebase);
要准确理解它们在做什么,需要遍历它们的代码库以查看调用的内容,但我可以演示一个简化的等价物,如下所示:

// File 1, the equivalent of firebase/app
export default {}; // no properties on it.

您好,谢谢您的评论,好的,我收到了导入的“firebase/firestore”;意味着在firestore中运行代码,而不管其中是否有导出。但我不明白那两个无名的进口货是怎么联系到firebase的。请你澄清一下我链接的文件的第27行到第32行。谢谢你尼古拉斯:对不起,我只有最后一个问题。为什么需要导入firebase/app而不仅仅是firebase?应用程序是否包含重要的内容或…?如果您想要所有内容,您可以这样做。他们将其拆分为多个包,这样您就可以导入所需的部分,从而使代码更小。您好,谢谢您的评论,好的,我得到了导入“firebase/firestore”;意味着在firestore中运行代码,而不管其中是否有导出。但我不明白那两个无名的进口货是怎么联系到firebase的。请你澄清一下我链接的文件的第27行到第32行。谢谢你尼古拉斯:对不起,我只有最后一个问题。为什么需要导入firebase/app而不仅仅是firebase?应用程序是否包含重要的内容或…?如果您想要所有内容,您可以这样做。他们将其拆分为多个包,这样您就可以只导入所需的部分,从而使代码更小。