Неофициальные документы, организуйте текст и примеры ваших официальных документов для быстрого поиска.
Зачем использовать SEA.JS?
SEA.JS преследует простые и естественные методы написания кода и организации, со следующими основными функциями:
Простая и дружественная спецификация определения модуля: SEA.JS следует спецификации CMD и может писать код модуля, такой как Node.js.
Натуральная и интуитивно понятная организация кода: автоматическая загрузка зависимостей и краткая и четкая конфигурация позволяют нам пользоваться большим кодированием.
SEA.JS также предоставляет общие плагины, которые очень полезны для отладки разработки и оптимизации производительности и имеют богатые расширяемые интерфейсы.
совместимость
SEA.JS имеет полные тестовые примеры и совместим со всеми основными браузерами:
Хром 3+
Firefox 2+
Сафари 3.2+
Opera 10+
Т.е. 5,5+
SEA.JS может работать на мобильной стороне, включая приложение Hybrid Mode. Теоретически, SEA.JS может работать на любом двигателе браузера.
Seajs.configobject
Объект псевдонимы
Конфигурация псевдонима, после конфигурации вы можете использовать требование для вызова ('jQuery');
seajs.config ({псевдоним: {'jquery': 'jquery/jquery/1.10.1/jQuery'}}); определить (function (require, exports, module) {// Справочный модуль jQuery var $ = require ('jQuery');});пути объекта
Установите пути, чтобы облегчить перекрестные вызовы. Гибко установив путь, вы можете указать в определенном каталоге, не влияя на базу.
seajs.config ({// установить пути пути: {'Галерея': 'https://a.alipayobjects.com/gallery'}, // Установить псевдонимы для облегчения вызовов к псевдониме: {'underscore': 'Галерея/подчеркивание'}}); определить (function (require, exports, module) {var _ = require ('Underscore'); // => загруженная https://a.alipayobjects.com/gallery/underscore.js});Объект VARS
Переменная конфигурация. В некоторых сценариях путь модуля может быть определен только во время выполнения, и вы можете использовать переменную VARS для ее настройки.
VARS настроен со значением переменной в идентификаторе модуля, а переменная представлена {Key} в идентификаторе модуля.
seajs.config ({// variable configuration vars: {'locale': 'zh-cn'}}); определить (function (require, exports, module) {var lang = require ('./ i18n/{locale} .js'); // => загруженная пута/до/i18n/zh-cn.js});карта массив
Эта конфигурация может отображать и изменять пути модуля и может использоваться для преобразования пути, онлайн -отладки и т. Д.
seajs.config ({map: [['.js', '-debug.js']]}); определить (function (require, exports, module) {var a = require ('./ a'); // => Нагрузка-это Path/to/a-debug.js});Предварительная нагрузка массива
Используя элемент конфигурации предварительной нагрузки, вы можете заранее загружать и инициализировать указанный модуль перед загрузкой нормального модуля.
Пустая строка в предварительной нагрузке будет проигнорирована.
// в старых браузерах загрузите модули ES5 и JSON SEAJS.Config ({PreLoad: [function.prototype.bind? '': 'Es5-safe', this.json? '': 'Json']});Примечание. Конфигурация в предварительной нагрузке должна быть загружена до использования. например:
seajs.config ({preload: 'a'}); // Перед загрузкой b это гарантирует, что модуль A загрузил и выполнил Seajs.use ('./ B');Конфигурация предварительной нагрузки не может быть помещена в файл модуля:
seajs.config ({preload: 'a'}); определить (function (require, exports) {// При выполнении здесь нельзя гарантировать, что модуль A был загружен и выполнен});отладка логины
Когда значение верно, загрузчик не удаляет динамически вставленную тег скрипта. Плагин также может определить выходные данные и другую информацию на основе конфигурации отладки.
базовая строка
Sea.js проанализирует идентификатор верхнего уровня по сравнению с базовым пути.
Примечание. Как правило, не настраивайте базовый путь. Помещение SEA.JS на соответствующий путь часто проще и более последовательнее.
charsetString | Функция
Атрибут Charset по тегу <Script> или <Link> при получении файла модуля. По умолчанию UTF-8
Charset также может быть функцией:
seajs.config ({charset: function (url) {// Файлы в каталоге xxx загружаются в кодирование GBK if (url.indexof ('http://example.com/js/xxx') === 0) {return 'gbk';} // другие файлы приносят в utf-8 utf-8;Seajs.use функция
Используется для загрузки одного или нескольких модулей на странице. seajs.use (id, обратный вызов?)
// Load a module seajs.use('./a');// Load a module, execute callback seajs.use('./a', function(a) { a.doSomething();});// Load multiple modules, execute callback seajs.use(['./a', './b'], function(a, b) { a.doSomething(); b.doSomething();});ПРИМЕЧАНИЕ: Seajs.use не имеет ничего общего с событием Dom Ready. Если некоторые операции должны быть выполнены после готового DOM, вам необходимо использовать классовые библиотеки, такие как jQuery, чтобы убедиться. например
seajs.use (['jquery', './main'], function ($, main) {$ (document) .ready (function () {main.init ();});});Примечание. Первый параметр метода использования должен присутствовать, но он может быть нулевой или переменной
var bootstrap = ['bootstrap.css', 'bootstrap-responsive.css', 'bootstrap.js']; seajs.use (bootstrap, function () {// делайте что-нибудь});Seajs.cache Ojbect
Через Seajs.cache вы можете проверить всю информацию о модуле в текущей системе модулей.
Например, Open Seajs.org, а затем введите Seajs.cache в консольную панель инструментов разработчика Webkit, и вы можете увидеть:
Объект> http://seajs.org/docs/assets/main.js: x> https://a.alipayobjects.com/jquery/jquery/1.10.1/jquery.js: x> __proto__: объект
Это модули, используемые на домашней странице документа. Разверните элемент, чтобы увидеть конкретную информацию модуля. Значение можно найти в разделе модуля спецификации определения модуля CMD.
SEAJS.RESLOVE функция
Подобно требованиям. РЕЗЕЙСЯ, внутренний механизм модульной системы будет использовать разрешение пути входящих параметров строки.
Seajs.Resolve ('jQuery'); // => http: //path/to/jquery.jsseajs.resolve ('./a', 'http://example.com/to/b.js');/// => http://example.com/to/js'Метод Seajs.Resolve может использоваться не только для отладки, является ли разрешение пути правильным, но и в среде разработки плагина.
Seajs.data объект
Через Seajs.data вы можете просмотреть все конфигурации SEAJS и значения некоторых внутренних переменных, которые можно использовать для разработки плагина. Его также можно использовать для отладки при возникновении проблем с загрузкой.
Часто задаваемые вопросы
Об идентификации модуля
Идентификаторы модулей SEAJS представляют собой в основном небольшие верблюжьи струны. или ..
// на заводе http://example.com/js/a.js: require.resolve ('./ b'); // => http://example.com/js/b.js// на фабрике http://example.com/js/a.js: require.resolve ('../ c'); // => http://example.com/c.jsОн разделен на относительные и верхние логотипы. Если это начинается с. или. Это относительный идентификатор. Небольшой выключатель строк верблюда является идентификатором верхнего уровня.
// Предположим, базовый путь: http://example.com/assets/// в коде модуля: require.resolve ('Gallery/jQuery/1.9.1/jQuery'); // => http://example.com/assets/gallery/jquery/1.9.1/jquery.jsО пути
В дополнение к относительно идентификации высокого уровня, SEAJS также может использовать нормальные пути для загрузки модулей.
Давайте перейдем к анализу сценария текущей страницы (вы можете щелкнуть правой кнопкой мыши, чтобы просмотреть исходный код)
// Путь sea.js, то есть базовый путь, относительно текущей страницы <script src = "http://yslove.net/actjs/assets/sea-modules/seajs/2.1.1/sj.js"> </script> <script type = "text/javascript"> // configureure SeajseaJs. // Идентификация верхнего уровня, основанная на базовом пути 'Actjs': 'actjs/core/0.0.7/core.js', // => http: // 'position': 'actjs/util/0.0.2/position.js'}}); '../../actjs/assets/widget/src/widget-affix.js', // относительный идентификатор, относительно текущей страницы 'init': './src/init.js'}}); </script>
Вначале я чувствую, что путь Seajs немного не привык к этому, потому что это базовый путь. Помните, что базовый путь-это верхний путь файла в SEA.JS, а затем все идентификаторы верхнего уровня и относительные идентификаторы скорректируются по сравнению с этим основанием.