10

Wiem, że ten temat może stać się subiektywny, dlatego nie chodzi o moją konkretną aplikację internetową, nad którą pracuję.Kiedy należy używać struktury MVC w JavaScript?

Dla JavaScript, nie pracowałem z bibliotekami MVC, takimi jak Backbone.js, ale widzę przewagę w oddzielaniu logiki i widoków. Z drugiej strony może nie być warta czasu na poznanie struktury i dostosowanie aplikacji do jej wykorzystania. Co więcej, obsługa wszystkich widoków w JavaScript sprawia, że ​​SEO jest znacznie trudniejsze, jak sądzę.

Więc jak powinienem zdecydować, czy użycie Backbone.js lub podobnej platformy ma sens w kontekście aplikacji internetowej? Na czym polega decyzja?

Każda pomoc, aby pytanie było bardziej obiektywne, jest mile widziane.

+0

Wygląda na to, że program underscore.js ma porty do innych języków. Przepraszam za moją ignorancję, ale co Podkreśla ma związek z MVC? Wydaje się tylko, że dodaje pewne funkcje użytkowe. –

+0

Zapewnia [modele] (http://backbonejs.org/#Model) i [widoki] (http://backbonejs.org/#View) dla aplikacji internetowych JavaScript. Masz rację, że to mniej ramy, a raczej zestaw narzędzi. Ale nie w pełni do tego doszło. Oto artykuł o [Backbone.js i tradycyjnym MVC] (http://backbonejs.org/#FAQ-mvc). – danijar

+2

Byłem całkowicie zaskoczony, gdy po raz pierwszy dowiedziałem się, że MVC może być również zastosowane w javascriptie. Podkreślenie, podkreślenie, szkielet jest przykładem ... ale kiedy go używać, to wciąż jest dla mnie duży znak zapytania ... dobre wyjaśnienie na ten temat pomogłoby wielu ludziom. + 1 na pytanie –

Odpowiedz

7

Istnieje wiele ramek MVC po stronie klienta javascript (lub MV *). Większość wydaje się mieć inne wyobrażenie o tym, czym jest MVC i jak powinna współpracować z Twoją aplikacją internetową.

Należy rozważyć ramy MV *, jeśli złożoność javascript po stronie klienta staje się trudna do zarządzania. Jeśli masz zespół budujący wysoce dynamiczną aplikację z jedną stroną (SPA), która wykonuje dużo asynchronicznej komunikacji z serwerem, powinieneś rozważyć to. Łatwo jest skończyć z bardzo niechlujnym kodem JavaScript.

MV * ramy pomogą w jednym lub więcej z następujących sposobów:

  • definiując jak kod powinien być zorganizowany. Odbywa się to w różnym stopniu, w zależności od tego, w jaki sposób jest to uzasadnione. Backbone na przykład uważa się raczej za bibliotekę niż za framework i dlatego pozostawia więcej decyzji podejmowaniu decyzji przez użytkownika wiążąc html z modelem. Więc jeśli dane zmienia się strona zostanie automatycznie zaktualizowana (i odwrotnie)
  • dostarczając przydatnych funkcji, takich jak historia adres URL (na jednej stronie aplikacji) i walidacji
1

jak wiesz struktura MVC mogą być zawarte w javascript za pomocą backbone.js z underscore.js i innych podobnych bibliotek skupiając się głównie na każdym polu formularza jako własności w jednostce, tak że podmioty mogą być wykorzystane do różnych celów struktura MVC utrzymuje się przez proste manipulacja w javascript Ta struktura jest dobra do wiązania zdarzeń, manipulacji domem, serializacji itd.

Zależnie od celu aplikacji, wybór odpowiedniej struktury, czy ma strukturę mvc czy mvvm dla javascript. Struktura MVVM może być zawarta w javascript przez angular.js lub knockoutjs lub inne biblioteki dynamicznego wiązania do komponentu view Javascript może być używany
Architektura MVVM będzie przydatna do utrzymywania powiązania pola formularza bez przeładowywania lub ajaxa Istnieje wiele aplikacji, utrzymując architektura w js i ja wskazałem tylko kilka.

dla np Serialize form inputs to JSON using Backbone.js

W tym przykładzie wartości formularza są pobierane jako model, a następnie może być manipulowane i można dodać logikę biznesową i może być serializowane lub wiążącej zdarzenie i może należy drukować ani żadnej rzeczy

7

myślę, że to zależy od projektu.Oto lista kontrolna, która może pomóc ci w podjęciu decyzji, czy powinieneś używać frameworku MV * frontend, czy też nie.

  • Dużo żądanie AJAX backend
  • Wiele swojej funkcjonalności nie wymaga pełnego przeładowania strony. Np. Dodawanie komentarza, stronicowania lub nieskończonego przewijania.
  • Masz modele/REST API w backend. Możesz po prostu replikować/używać tej samej struktury na początku.
  • Udostępniasz funkcje sterowania logicznego/domowego na różnych stronach.

Dodam więcej, jeśli znajdę więcej punktów. Tak właśnie myślę, a to nie jest pełna lista. Wszelkie sugestie są mile widziane.

Powiązane problemy