Когда я должен использовать структуру MVC в JavaScript?
Я знаю, что эта тема, вероятно, станет субъективной, поэтому речь идет не о моем конкретном веб-приложении, над которым я работаю.
Для JavaScript я не работал с библиотеками MVC, такими как Backbone.js, но я вижу преимущество в развязке логики и просмотров. С другой стороны, просто не стоит тратить время на изучение структуры и адаптацию приложения к ее использованию. Более того, обработка всех просмотров в JavaScript делает SEO намного сложнее, я думаю.
Итак, как мне решить, имеет ли смысл использовать Backbone.js или аналогичную структуру, учитывая концепцию веб-приложения? На чем зависит решение?
Любая помощь, чтобы сделать вопрос более объективным, приветствуется.
Ответы
Ответ 1
Существует множество клиентских javascript MVC (или MV *) фреймворков. Большинство из них, похоже, имеют другое представление о том, что такое MVC и как он должен работать вместе с вашим веб-приложением.
Вам следует рассмотреть структуру MV *, если сложность управления javascript на вашей стороне клиента становится сложной. Если у вас есть команда, создающая высокодинамичное одностраничное приложение (SPA), которое выполняет много асинхронной связи с бэкэнд, тогда вы захотите его рассмотреть. В противном случае легко получить очень грязный код javascript.
Структура MV * поможет вам одним или несколькими из следующих способов:
- определяя, как должен быть структурирован код. Это делается в разной степени в зависимости от того, насколько упрямствуем рамки. Backbone, например, считает себя библиотекой, а не каркасом и, таким образом, оставляет больше решений, принимаемых пользователем
- путем привязки html к модели. Поэтому, если ваши данные изменятся, страница будет автоматически обновлена (и наоборот).
- предоставляя полезные функции, такие как история URL (для одностраничных приложений) и валидация
Ответ 2
Я думаю, это зависит от вашего проекта. Вот контрольный список, который может помочь вам решить, следует ли использовать фреймворк MVF frontend или нет.
- Множество запросов ajax для бэкэнд
- Многие из ваших функций не требуют полной перезагрузки страницы. Подобно добавлению комментария, разбивки на страницы или бесконечного прокрутки.
- У вас есть модели /REST API для бэкэнд. Вы можете просто копировать/использовать ту же структуру на передней панели.
- Вы используете функции манипуляции логикой /dom на разных страницах.
Я добавлю больше, если найду больше очков. Это то, что я могу сейчас думать, и это не полный список. Любые предложения приветствуются.
Ответ 3
Как вы знаете, структура MVC может быть включена в javascript, используя
backbone.js с
underscore.js и другие подобные библиотеки, в основном фокусирующиеся на каждом поле формы как на свойство в сущности, так что объекты могут использоваться в разных целях. Структура MVC поддерживается для удобства в javascript
Эта структура хороша для привязки событий, манипуляции с dom, сериализации и т.д.
В зависимости от цели приложения для выбора какой структуры подходит ее структура mvc или mvvm для javascript. Структура MVVM может быть включена в javascript через angular.js или knockoutjs или другие библиотеки для динамической привязки для просмотра компонента Javascript можно использовать
MVVM-архитектура будет полезна для сохранения привязки поля формы без перезагрузки или ajax. Существует много приложений, поддерживающих архитектуру в js, и я указал только на несколько.
например: Сериализовать входные данные формы в JSON, используя Backbone.js
В этом примере значения формы извлекаются как модель, а затем ее можно манипулировать и может добавлять бизнес-логику и может быть сериализована или привязана к событиям и может выполнять печать или любую вещь.