В вашем следующем коде:
//fileA.js:
export default MyClass {}
//fileB.js:
import MyClass from './fileA.js';
//fileC.js:
import './fileB.js';
Myclass
будет доступно только в fileB, потому что это напрямую импортирует это.Ваша 3-я строка кода не собирается загружаться в файл A.Тот факт, что FileA загружен в FileB, не означает, что зависимость передается, когда мы импортируем B в FileC
. Чтобы сделать его доступным, мы должны импортировать его снова в файл C, как мы это делали в файле B:
import MyClass from './fileA.js';
Другой import
export
синтаксис:
Когда один файл экспортирует несколько вещей (без значения по умолчанию впереди), мы можем импортировать его с использованием именованного экспорта, например:
export class1 {}
export class2 {}
Мы экспортируем 2 класса, мы могли бы импортировать их, используя следующий синтаксис:
import {class1, class2} from './fileA.js';
Имейте в виду, что имена теперь должны совпадать с именами экспорта, class1
и class2
в этом случае.
Мы также можем импортировать все экспорты файла следующим образом:
import * as classes from './fileA.js';
classes.class1 // the way to access class1
Этот синтаксис помещает все экспорты в объект, имя которого мы можем определить (после as
ключевое слово).Затем мы можем получить доступ к экспорту, как мы обычно обращаемся к свойствам объекта.