====== імпорт \ єкспорт функцій ======
- Створюємо папку
- Створюємо в ній файли **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"