імпорт \ єкспорт функцій
- Створюємо папку
- Створюємо в ній файли modulesOne.mjs і modulesTwo.mjs
Єкспорт по дефаулту
modulesOne.mjs єкпортируется одна функция
const sum = (a,b) => a+b export default sum
modulesTwo.mjs - імпортируєма фунція може мати любе імя
import sum from "./modulesOne.mjs"; let res1 = sum (10,2) console.log(res1)
Запуск з термінала через node.js
node .\modulesTwo.mjs
Єкспорт декілька функцій
modulesOne.mjs єкпортируется декілька змінних
const one = 1 const two = 'two' export { one, two }
modulesTwo.mjs імена змінних поинні спіпадати але можно додатково перреіменовуввати
import { one as oneRename, two } from './modulesOne.mjs' console.log(oneRename) console.log(two)
Запуск з термінала через node.js
node .\modulesTwo.mjs
Рекомендации імпорта \ єкспорта
- Импортировать желательно располагать вверху файла
- Сначала іморт с внешних модулей а потом с своих
- Єкспортировать желательно располагать внизу файла
Перейменування
Rename export — це техніка, яка дозволяє імпортувати іменовані експортовані змінні, функції тощо з одного модуля до іншого, змінюючи їм ім’я під час імпорту. Щоб задати нове ім'я під час імпорту з іншого модуля, використовується ключове слово as.
import { name as newName } from '...'
// Module myModule.js export const original = "Hello, World!"; // Your current module, for example app.js import { original as renamed } from './myModule.js'; console.log(renamed); // "Hello, World!"
Імпорт простору імен
Імпорт простору імен (namespace import) — це техніка імпортування всього вмісту модуля як об'єкта з іменем, що представляє простір імен цього модуля. Це означає, що всі іменовані експорти з модуля стають властивостями цього об'єкта. Це зручно, коли потрібно імпортувати багато різних функцій, змінних або класів з модуля, не обираючи їх по одному.
// Module user.js export const name = "Mango"; export const age = 26; export const email = "mango@mail.com"; // Your current module import * as user from './myModule.js'; console.log(user.name); // "Mango" console.log(user.age); // 26 console.log(user.email ); // "mango@mail.com"