SeaJS - это структура загрузки модуля JavaScript, которая следует за спецификацией CommonJS. Это современный инструмент загрузки модуля для веб -разработки, обеспечивающий простой и окончательный модульный опыт. SEA.JS совместно поддерживается Alibaba, Tencent и другими компаниями.
Преимущества использования SEA.JS:
SEA.JS преследует простые и естественные методы написания кода и организации, со следующими основными функциями:
Простая и дружественная спецификация определения модуля: SEA.JS следует спецификации CMD и может писать код модуля, такой как Node.js.
Натуральная и интуитивно понятная организация кода: автоматическая загрузка зависимостей и краткая и четкая конфигурация позволяют нам пользоваться большим кодированием.
SEA.JS также предоставляет общие плагины, которые очень полезны для отладки разработки и оптимизации производительности и имеют богатые расширяемые интерфейсы.
Ниже я представлю три модуля SEA.js
Используйте экспорт, экспорт - это объект, который обеспечивает интерфейсы модуля снаружи.
define (function (require, exports, module) {var a = require ("./ init"); var fun1 = function () {return a.write ("Модуль основной вызывает метод записи модуля init");}; exports.fun1 = fun1;});В дополнение к добавлению участников в объект Export, вы также можете использовать возврат для предоставления интерфейсов непосредственно снаружи.
Определите (function (require, exports, module) {var a = require ("./ init"); var fun1 = function () {return a.write ("Module Main Calls Метод записи модуля init");}; return {fun1: fun1}})Если у модуля нет никакой бизнес -логики, просто верните объект, он может быть упрощен до следующего
define ({fun1: function () {alert ("Fun Call of Module Main успешно")}});Другим способом является предоставление унифицированного интерфейса через module.exports, например:
определить (function (require, exports, module) {var a = require ("./ init"); // является текущим каталогом ../ - это верхний каталог/ - это корневой каталог var fun () {return a.write («Module Main Calls Метод записи модуля init»);}; exports.b = funct alert ("bb")}; module.exports = {fun1: fun1}});Экспорт - это лишь ссылка на модуль.exports. При перенаправлении экспорта внутри метода значение модуля. Экспорты не изменяются. Следовательно, назначение значения экспорта является недействительным. Вышеуказанный метод обнаруживает только внешнее веселье1. Приведенный выше метод B назначен недействительным и не может использоваться для изменения интерфейса модуля.
exports.async ()
require.async (id || [], обратный вызов?)
Метод require.async используется для загрузки модуля асинхронно внутри модуля и выполнения указанного обратного вызова после завершения загрузки. Параметр обратного вызова является необязательным.
определить (функция (require, exports, module) {require.async ('./ init', function (a) {a.write ("Module Основные вызовы метода записи модуля init")}); require.async (['./ init', ./ search "], функция (a, b) {a.write (" Module Main 'Module Modelse Module init init initerably введено ")});});Модуль модуля - это объект, который хранит некоторые свойства и методы, связанные с текущим модулем.
1 Module.id String
Уникальная идентификация модуля.
2 Module.uri String
Абсолютный путь модуля, полученный в соответствии с правилами анализа пути системы модуля. Как правило, значение module.id - module.uri, который точно такой же.
3 MODULE.PEEDENDIENTIENS ARRAY
Зависимости - это массив, представляющий зависимости текущего модуля.