Gần đây tôi đã nghe nói rằng có một số thay đổi lớn sắp xảy ra với 4.2 liên quan đến cách ứng dụng MVC hoạt động. Tôi đã tải xuống bản beta nhưng API có vẻ như tất cả đều giống nhau. Bất cứ ai có thể giải thích cho tôi những thay đổi sắp tới và những gì thats tất cả về? Tôi có cần phải lo sợ rằng tất cả các bộ điều khiển của tôi sẽ ngừng hoạt động nếu tôi cập nhật?Những thay đổi lớn đối với MVC trong ExtJS4.2?
Trả lời
Không, bạn không phải sợ hãi trừ khi bạn đang làm những điều hoàn toàn kỳ lạ.
Những thay đổi chính là bộ điều khiển không còn yêu cầu phiên bản Ext.app.Application
đối với. Đó là do một sự thay đổi của Ext.app.EventBus
mà bây giờ là loại singleton và do đó cho phép tất cả các bộ điều khiển để sử dụng cùng một ví dụ.
Đó là những gì tôi biết bây giờ. Tôi có thể cập nhật bài đăng của mình nếu tôi nhận được thông tin mới
Có, tôi sẽ gọi những thay đổi mà chúng tôi đã thực hiện cho MVC ở mức 4.2 khá lớn; tuy nhiên khả năng tương thích ngược luôn là ưu tiên của chúng tôi. Tôi thừa nhận rằng trước 4.2 có rất nhiều vấn đề chưa được giải quyết với việc triển khai MVC và điều đó đã thúc đẩy mọi người nhảy qua tất cả các loại hoops để làm những gì họ cần. Chúng tôi đã cố gắng giải quyết những điều này và hợp lý hóa trải nghiệm MVC, cùng với việc thêm một số tính năng nhằm vào những người có ứng dụng lớn trên tay. 4.2 beta 2 sẽ bao gồm hầu hết những điều này và chúng tôi muốn nghe phản hồi của bạn về chúng.
tôi dự định viết lên trên những cải tiến trước 4.2 được phát hành, nhưng đây là một danh sách nhanh chóng:
Ext.app.EventBus
, như @sra đề cập, bây giờ là một singleton, và luôn luôn có sẵn trong ứng dụng của bạn - mặc dù nó không có ý nghĩa gì khi sử dụng nó trực tiếpExt.app.Controller
không còn phụ thuộc vàoExt.app.Application
để thực hiện mọi việc và có thể được khởi tạo mà không cần đến toàn bộ cây phụ thuộc - nghĩa là bạn có thể kiểm tra bộ điều khiển của mình!- Nó bây giờ có thể tạo lớp của riêng ứng dụng (es) kéo dài từ
Ext.app.Application
, và bao gồm logic của bạn trong lớp này Ext.application()
không còn không kể xiết ma thuật đen; khi thông qua tên lớp Ứng dụng của bạn, nó chỉ khởi tạo nó. Nếu bạn vượt qua nó một đối tượng cấu hình như trước, nó sẽ khai báo lớp ứng dụng mới với các tùy chọn cấu hình này, và khởi tạo nó - cùng một logic như trên, thực hiện một chút khác nhau- Do kết quả của hai mục ở trên,
Ext.application()
không còn yêu cầu tất cả cây phụ thuộc của bạn đồng bộ (trước đây là), do đó, đó là một điều cần xem cho - Bây giờ có thể khai báo rõ ràng tất cả không gian tên (phần dự án) trong lớp Ứng dụng của bạn, để tránh bất kỳ loại không rõ ràng nào khi phân giải phụ thuộc
Ext.app.Application
hiện đang giao dịch đúng cách với tổ tiên của riêng nó và có thể được sử dụng làm Bộ điều khiển cấp cao nhất trong ứng dụng- Một khái niệm mới về các miền sự kiện đã được giới thiệu; bây giờ có thể kích hoạt và nghe các sự kiện không liên quan đến Thành phần.Chúng tôi cung cấp một số lĩnh vực ra khỏi hộp, và thật dễ dàng để thêm của riêng bạn - một cái gì đó giống như tôi đã mô tả trong my article một số thời gian trước đây, nhưng sạch hơn và mạnh hơn
Đã có một số cải tiến nhỏ hơn và hacks để tương thích ngược, chủ yếu quan tâm đến việc theo dõi sự phụ thuộc. Những điều này không nên đi bạn nếu bạn không làm điều gì đó quá điên rồ. Nếu bạn làm, đó là những gì Betas cho. :)
Hy vọng điều này sẽ hữu ích!