Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Những thay đổi đã được giới thiệu trong MVVMCROSS V3 về việc xây dựng ViewModel


Những thay đổi đã được giới thiệu trong MVVMCROSS V3 về việc xây dựng ViewModel


Trong MVVMCROSS V3, một số thay đổi đáng kể đã được giới thiệu về việc xây dựng ViewModel, nhằm tăng cường khả năng kiểm tra và khả năng sử dụng cho các nhà phát triển. Đây là những thay đổi chính:

1. Tiêm phụ thuộc dựa trên hàm tạo: Một trong những thay đổi chính là việc giới thiệu tiêm phụ thuộc dựa trên hàm tạo. Điều này cho phép các nhà phát triển đưa các phụ thuộc trực tiếp vào hàm tạo của ViewModel, giúp quản lý các phụ thuộc dễ dàng hơn và cải thiện khả năng kiểm tra. Trước đó, các phụ thuộc thường được quản lý thông qua các phương tiện khác, có thể ít đơn giản hơn.

2. Điều hướng sử dụng các lớp điều hướng đánh máy: MVVMCROSS V3 đã giới thiệu một hệ thống điều hướng mới sử dụng các lớp điều hướng đánh máy. Điều này có nghĩa là thay vì điều hướng trực tiếp đến các chế độ xem, các nhà phát triển có thể điều hướng giữa các chế độ xem bằng cách sử dụng các lớp được gõ mạnh. Cách tiếp cận này đơn giản hóa điều hướng đa nền tảng bằng cách trừu tượng hóa các chi tiết cụ thể về nền tảng.

3. Lưu và tải lại trạng thái ViewModel cho Tombstoning: Một tính năng quan trọng khác được giới thiệu trong V3 là khả năng lưu và tải lại trạng thái ViewModel. Điều này đặc biệt hữu ích để xử lý các kịch bản "Tombstoning", trong đó một ứng dụng có thể bị kết thúc bởi hệ điều hành do các ràng buộc bộ nhớ và sau đó được khôi phục khi người dùng trở về nó. Bằng cách lưu trạng thái ViewModel, các ứng dụng có thể duy trì trạng thái hiện tại của họ ngay cả sau khi bị chấm dứt và khởi động lại.

4. Các tham số điều hướng được truyền đến `init ()` Phương thức: Trong các phiên bản cũ hơn của MVVMcross, các tham số điều hướng được chuyển trực tiếp đến hàm tạo của ViewModel. Tuy nhiên, bắt đầu với V3, các tham số này thay vào đó được chuyển sang phương thức `init ()`. Sự thay đổi này cho phép hàm tạo được sử dụng chỉ để tiêm phụ thuộc, làm cho mã sạch hơn và dễ bảo trì hơn. Phương pháp `init ()` trở thành nơi xử lý các tham số điều hướng, cho phép logic khởi tạo linh hoạt hơn.

Nhìn chung, những thay đổi này trong MVVMCROSS V3 đã cung cấp một cách xây dựng và quản lý các chế độ xem có cấu trúc và có thể duy trì hơn, nâng cao trải nghiệm phát triển tổng thể cho các ứng dụng đa nền tảng.

Trích dẫn:
[1] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[2] https://github.com/mvvmcross/mvvmcross/releases
.
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-App-and-Setup
[5] https://www.mvvmcross.com/blog/
[6] https://softwareengineering.stackexchange.com/questions/389086/do-we-need-models-if-we-are-using-viewmodels
[7] https://stackoverflow.com/questions/16723078/mvvmcross-does-showviewmodel-always-construct-new-instances
[8] https://stackoverflow.com/questions/39587974/changes-in-mvvmcross-bindings
[9] https://www.mvvmcross.com/Documentation
[10] https://www.mvvmcross.com/documentation/fundaments/data-binding
[11] https://github.com/MVVMCROSS