Ответ 1
Я не использовал каких-либо конкретных фреймворков, но я разработал веб-приложение на основе MVC и не так сложно сделать это с помощью некоторых других библиотек.
Во-первых, для Views хорошей отправной точкой является использование шаблонов javascript (например, JavaScriptTemplates), чтобы сохранить всю разметку HTML из вашего javascript файлы и в отдельных html файлах. Это уже много помогает.
Что касается контроллеров и моделей, то я имитирую подобное поведение с помощью объектно-ориентированного синтаксиса JavaScript, например:
// Create namespace for this component
App.namespace = {};
// Populate namespace
App.namespace.some_name = function () {
// Put private variables and functions here, e.g.:
// var privateVarName = 'privateVarValue';
return {
// Put public variables and functions here, e.g.:
// publicVarName: 'publicVarValue',
};
}();
Таким образом, вы можете хранить компоненты отдельно, что имеет смысл для вашего приложения. Например, у меня был объект App.ui.views, где происходит взаимодействие с шаблонами javascript. Был также объект хранилища данных, который содержал все объекты, которые представляют что-то из базы данных или другой информации. Мое личное предпочтение состояло в том, чтобы иметь более тонкое разделение определенных типов контроллеров (разделенных на несколько файлов), потому что они могут стать довольно много в полномасштабном приложении javascript.