Как правильно использовать модули?

В настоящее время у меня есть сайт Backbone.js, который работает правильно. Тем не менее, этот сайт становится довольно большим и очень быстро превращается в Backbone Spaghetti.

Чтобы решить эту проблему, я думаю, что Marionette.js — это то, что нужно, и я начал изучать его на прошлой неделе и пытался придумать доказательство концепции, используя его. Первоначально я думал, что каждый набор маршрутов (т. е. серверы и серверы/:id) сайта должен быть отдельным модулем. Например, список серверов, а затем, когда вы открываете сервер, форма и связанные списки будут представлять собой один модуль, и то, что отображается, зависит от маршрута (серверы или сервер/:id). Затем, когда вы переходите на какой-то другой маршрут, я останавливаю этот модуль, сбрасываю область содержимого и запускаю другой.

Итак, мой вопрос заключается в следующем... использую ли я модули по назначению? Или, если модуль является более широким смыслом этого слова, означающим отдельные «мини-приложения» (например, виджет чата, виджет уведомлений и т. д.), то, что «не требуется» для общей цели сайта, чтобы продолжать функционировать независимо состояния этого модуля (запущен или остановлен)?


person keithstric    schedule 28.07.2014    source источник


Ответы (1)


Модули предназначены для мини-приложений, как вы упомянули. Еще более современным подходом является организация кода с помощью RequireJS. Это заставит вас вписать свой код в модульную структуру.

Маршруты, которые принадлежат друг другу (/admin/users, /admin/users/2/view, /admin/users/2/edit, /admin/users/new и т. д.), вы должны сгруппировать в контроллере Marionette.

После того, как вы ознакомитесь с Marionette, вы, вероятно, найдете способ использовать недавно запущенную функцию: поведение. Они способствуют повторному использованию кода и делают ваши представления еще более компактными.

person P. R. Ribeiro    schedule 29.07.2014
comment
Благодарю за разъяснение. Так что я подходил к этому неправильно. Что касается Поведений, да, я начал на них смотреть и должен сказать, что они чертовски круты. Я также использую require.js и старый сайт. Но у меня было несколько представлений длиной в сотни строк, и когда я добавлял какую-то функцию, это ломало что-то еще. Поэтому нужно было что-то изменить, чтобы упростить обслуживание. - person keithstric; 29.07.2014