10

我知道這個話題可能會變得主觀,因此它不是關於我正在處理的特定Web應用程序。什麼時候應該在JavaScript中使用MVC框架?

對於JavaScript,我沒有使用類似Backbone.js這樣的MVC庫,但我發現解耦邏輯和視圖的優勢。另一方面,學習框架並使其適應應用程序以利用它可能不值得。而且,處理JavaScript中的所有視圖使得搜索引擎優化變得更加困難,我想。

那麼我應該如何決定使用Backbone.js或給定Web應用程序概念的類似框架是否合理?決定什麼取決於?

任何幫助,使問題更客觀的是歡迎。

+0

Underscore.js似乎有其他語言的端口。請原諒我的無知,但Underscore與MVC有什麼關係?它似乎只是增加了一些實用功能。 – 2013-07-27 08:57:22

+0

它爲JavaScript Web應用程序提供[models](http://backbonejs.org/#Model)和[views](http://backbonejs.org/#View)。你是對的,這不是一個框架,而是一個工具集。但我沒有完全解決它。這裏有一篇關於[Backbone.js和傳統MVC]的文章(http://backbonejs.org/#FAQ-mvc)。 – danijar

+2

當我第一次知道MVC也可以應用於javascript ..angular,下劃線,骨幹等等時,我完全感到驚訝......但是何時使用它仍然是我的一個大問號......關於它的一個很好的解釋會幫助很多人。+ 1的問題 –

回答

7

有很多客戶端JavaScript MVC(或MV *)框架。大多數人似乎對MVC是什麼以及如何與您的Web應用程序一起工作有不同的看法。

如果客戶端javascript的複雜性變得難以管理,那麼您應該考慮一個MV *框架。如果您有一個團隊構建高度動態的單頁應用程序(SPA),並與後端進行大量異步通信,那麼您將需要考慮它。否則,很容易導致非常麻煩的JavaScript代碼。

的MV *框架將幫助你在一個或多個以下幾種方式:

  • 定義代碼應該如何構建。這取決於對框架的看法如何不同程度地完成。骨幹例如認爲自己是一個庫而不是一個框架,因此通過將html綁定到模型,留給了用戶更多的決定權,直到用戶
  • 。所以,如果您的數據更改的頁面將通過提供有用的功能,如URL歷史記錄(單頁的應用程序)和驗證
1

大家知道MVC結構可以通過使用 backbone.jsunderscore.js和其它類似的庫主要集中在每個表單字段作爲屬性中,使得實體可以用於不同的目的MVC結構被保持容易的實體被包括在JavaScript的在javascript中操作 這些結構適用於事件綁定,dom操作,序列化等。

這取決於應用程序的目的,以選擇適用於javascript的mvc還是mvvm結構。 MVVM結構可以包含在javascript中通過angular.jsknockoutjs或其他庫來動態綁定到視圖組件Javascript可以使用
MVVM架構將用於維護表單字段綁定而無需重新加載或ajax有很多應用程序通過維護js中的架構和我只指出了幾個。

爲例如:Serialize form inputs to JSON using Backbone.js

在本例中的形式的值被檢索作爲模型,然後可以對其進行操作,並可以添加業務邏輯和可以被序列化或事件綁定,並且可以做打印或任何東西

7

我認爲這取決於你的項目自動更新(反之亦然)

  • 。這是一個清單,可以幫助您決定是否應該使用前端MV *框架。

    • 大量Ajax請求到後端
    • 你的許多功能不需要重新加載整個頁面。像添加評論,分頁或無限滾動。
    • 您在後端有模型/ REST API。您可以在前端複製/使用相同的結構。
    • 您在不同的頁面上共享邏輯/ dom操作功能。

    我會增加更多,如果我找到更多的點。這是我現在可以想到的,這不是一個完整的列表。歡迎任何建議。

  • 相關問題