10

Tôi biết chủ đề này có khả năng trở thành chủ quan, do đó nó không phải là về ứng dụng web cụ thể của tôi mà tôi đang làm việc.Khi nào tôi nên sử dụng khung MVC trong JavaScript?

Đối với JavaScript, tôi chưa từng làm việc với thư viện MVC như Backbone.js nhưng tôi thấy lợi thế trong logic tách và chế độ xem. Mặt khác, nó chỉ có thể không có giá trị thời gian để tìm hiểu khuôn khổ và điều chỉnh ứng dụng để sử dụng nó. Hơn nữa, việc xử lý tất cả các khung nhìn trong JavaScript khiến SEO trở nên khó hơn, tôi đoán vậy.

Vậy làm cách nào tôi nên quyết định xem có nên sử dụng Backbone.js hoặc khung tương tự cho khái niệm về ứng dụng web không? Điều gì phụ thuộc vào quyết định?

Bất kỳ trợ giúp nào để đặt câu hỏi khách quan hơn đều được hoan nghênh.

+0

Underscore.js dường như có cổng đến các ngôn ngữ khác. Xin lỗi vì sự thiếu hiểu biết của tôi, nhưng Underscore phải làm gì với MVC? Nó chỉ có vẻ để thêm một số chức năng tiện ích. –

+0

Nó cung cấp [mô hình] (http://backbonejs.org/#Model) và [xem] (http://backbonejs.org/#View) cho các ứng dụng web JavaScript. Bạn là đúng đó là một khuôn khổ ít hơn và nhiều hơn một bộ công cụ. Nhưng tôi chưa hoàn thành nó. Đây là một bài viết về [Backbone.js và MVC truyền thống] (http://backbonejs.org/#FAQ-mvc). – danijar

+2

tôi đã hoàn toàn ngạc nhiên khi lần đầu tiên tôi biết rằng MVC cũng có thể được áp dụng trong javascript..angular, underscore, xương sống là một số ví dụ ... nhưng khi sử dụng nó vẫn là một dấu hỏi lớn đối với tôi ... một lời giải thích tốt về nó sẽ giúp nhiều người. –

Trả lời

7

Có rất nhiều khung công tác MVC (MV *) bên phía khách hàng. Hầu hết dường như có một ý tưởng khác nhau về MVC là gì và cách nó sẽ hoạt động cùng với ứng dụng web của bạn.

Bạn nên xem xét khung MV * nếu sự phức tạp trong javascript phía máy khách của bạn đang trở nên khó quản lý. Nếu bạn có một nhóm xây dựng một ứng dụng trang đơn động (SPA) có khả năng thực hiện rất nhiều giao tiếp không đồng bộ với chương trình phụ trợ thì bạn sẽ muốn xem xét nó. Thật dễ dàng để kết thúc với mã javascript rất lộn xộn khác.

Một MV * framework sẽ giúp bạn trong một hoặc nhiều trong các cách sau:

  • bằng cách định nghĩa như thế nào mã nên được cấu trúc. Điều này được thực hiện theo các mức độ khác nhau tùy thuộc vào cách khung được đặt ý kiến. Xương sống ví dụ xem xét chính nó một thư viện chứ không phải là một khuôn khổ và do đó để lại nhiều quyết định làm cho người dùng
  • bằng cách liên kết html với mô hình. Vì vậy, nếu dữ liệu của bạn thay đổi trang sẽ được tự động cập nhật (và ngược lại)
  • bằng cách cung cấp các tính năng hữu ích như lịch sử URL (cho các ứng dụng trang duy nhất) và xác nhận
1

As You Know cấu trúc MVC có thể được bao gồm trong javascript bằng cách sử dụng backbone.js với underscore.js và các thư viện tương tự chủ yếu tập trung vào từng lĩnh vực hình thức là tài sản trong một tổ chức như vậy mà đơn vị có thể được sử dụng vào mục đích khác nhau cấu trúc MVC được duy trì để dễ dàng thao tác trong javascript Những cấu trúc này phù hợp cho sự kiện ràng buộc, thao tác dom, tuần tự hóa, v.v.

Nó phụ thuộc vào mục đích của ứng dụng để chọn cấu trúc phù hợp cho cấu trúc mvc hoặc mvvm của nó cho javascript. Cấu trúc MVVM có thể được bao gồm trong javascript thông qua angular.js hoặc knockoutjs hoặc các thư viện khác cho liên kết động để xem Javascript thành phần có thể được sử dụng
Kiến trúc MVVM sẽ hữu ích cho việc duy trì liên kết trường biểu mẫu mà không cần tải lại hoặc ajax Có rất nhiều ứng dụng bằng cách duy trì kiến trúc trong js và tôi đã chỉ ra một vài.

cho ví dụ: Serialize form inputs to JSON using Backbone.js

Trong ví dụ này các giá trị hình thức được lấy ra như mô hình và sau đó nó có thể được thao tác và có thể thêm logic kinh doanh và có thể được tuần tự hoặc sự kiện ràng buộc và có thể làm in hoặc bất cứ điều

7

Tôi nghĩ rằng nó phụ thuộc vào dự án của bạn.Đây là một danh sách kiểm tra có thể giúp bạn trong việc quyết định xem bạn có nên sử dụng framework frontend MV * hay không.

  • Rất nhiều yêu cầu ajax để phụ trợ
  • Nhiều chức năng của bạn không đòi hỏi đầy đủ tải lại trang. Giống như thêm nhận xét, phân trang hoặc cuộn vô hạn.
  • Bạn có mô hình/API REST ở chương trình phụ trợ. Bạn chỉ có thể sao chép/sử dụng cấu trúc giống nhau ở giao diện người dùng.
  • Bạn đang chia sẻ chức năng thao tác logic/dom trên các trang khác nhau.

Tôi sẽ thêm nhiều hơn nếu tôi tìm thêm bất kỳ điểm nào. Đây là những gì tôi có thể nghĩ ngay bây giờ và đây không phải là một danh sách đầy đủ. Mọi đề xuất đều được chào đón.

Các vấn đề liên quan