ES6 modules - garevna/js-course GitHub Wiki
Модули - "строительные блоки" приложения
Создаются JS-модули путем экспорта содержимого JS-файла ( 🔸 export )
Директива 🔸 import позволяет вставить модуль, созданный с помощью export, в другой JS-файл
( при использовании webpack для сборки приложения поддержка браузерами ES6 модулей не имеет значения - вебпак сделает все правильно 😉 )
export const sqrt = Math.sqrt
export function buildElement ( tagName ) {
return document.body.appendChild (
document.createElement ( tagName )
)
}
export function elemExist ( elemSelector ) {
return !!document.querySelector ( elemSelector )
}const Sample = function ( tagName ) {
this.elem = document.body.appendChild (
document.createElement ( tagName )
)
}
Sample.prototype.getAttrs = function () {
return Object.getOwnPropertyNames ( this.elem )
}
Sample.prototype.setAttr = function ( attr, val ) {
this.elem [ attr ] = val
}
Sample.prototype.setStyle = function ( css_attr, val ) {
this.elem.style [ css_attr ] = val
}
export default SampleПри импорте из js-файлов расширение файла указывать не обязательно
Предположим, нам нужно использовать функции buildElement и elemExist из файла lib.js ( см. выше ) в файл main.js
import { buildElement, elemExist } from 'lib'☑️ Можно импортировать все содержимое файла lib.js:
import * as lib from 'lib'✍ Теперь можно использовать функции buildElement и elemExist:
var picture = buildElement ( 'img' )
picture.src = 'http://cs5-2.4pda.to/8853638.gif'
console.log ( elemExist ( picture.tagName ) )Теперь импортируем из файла sample.js ( см. выше ) в файл main.js:
import Sample from 'Sample';
let sample = new Sample ()