Подтвердить что ты не робот

Расслоения в requireJS

Я новичок в requireJS и tring, чтобы узнать его, чтобы я мог использовать его в своем текущем приложении.
При чтении документации API requireJS я столкнулся с пакетами (http://requirejs.org/docs/api.html#config-bundles) в качестве параметра конфигурации requireJS

requirejs.config({
    bundles: {
        'primary': ['main', 'util', 'text', 'text!template.html'],
        'secondary': ['text!secondary.html']
    }
});

require(['util', 'text'], function(util, text) {
    //The script for module ID 'primary' was loaded,
    //and that script included the define()'d
    //modules for 'util' and 'text'
});

API Объяснение:
Конфигурация Bundles полезна, если вы выполняете сборку, а цель сборки - не существующий идентификатор модуля, или если у вас есть ресурсы плагина загрузчика в встроенных JS файлах, которые не должны загружаться плагином загрузчика.

Но здесь я не могу понять, почему нам нужен пакет и когда мы должны использовать его?

4b9b3361

Ответ 1

При создании большого SPA-приложения (одностраничное приложение) настоятельно необходимо объединить и минимизировать ваши файлы. Проблема с этим заключается в том, что вы можете получить один массивный мини файл js, который может достигать нескольких мегабайт.

Чтобы решить эту проблему, необходимо ввести функцию связки, которая позволяет упаковывать ваши файлы в несколько пакетов, и они будут загружаться только при необходимости.

Итак, например, если у вас есть страница с "home" и "about", вы можете создать пакет, например:

bundles: {
        'home': ['home', 'util', 'text', 'text!home.html'],
        'about': ['text!about.html']
    }

а затем ресурсы страницы будут доступны только тогда, когда вы на самом деле нажимаете на страницу about. Таким образом, вы получаете ленивую загрузку ресурсов.

Для лучшего объяснения и примера просмотрите это отличное видео: http://vimeo.com/97519516

Соответствующая часть находится около 39 минут.