Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ما هي الاختلافات الرئيسية بين MVVMcross 4.x و 3.x فيما يتعلق بدورة حياة ViewModel


ما هي الاختلافات الرئيسية بين MVVMcross 4.x و 3.x فيما يتعلق بدورة حياة ViewModel


إصدارات MVVMCROSS 3.x و 4.x لها العديد من الاختلافات فيما يتعلق بدورة حياة VINEMODEL ، تتمحور في المقام الأول حول كيفية بناء موسعات VINEMODELS وتهيئتها وإدارتها.

MVVMCROSS 3.x

في MVVMcross 3.x ، تتبع دورة حياة ViewModel تسلسلًا يُعرف باسم CIRS: Construction ، init () ، ReloadState () ، and Start (). يتم استخدام هذا التسلسل لتهيئة وإدارة ViewModels. هذا انهيار:

- البناء: تم إنشاء إنشاء ViewModel باستخدام حاوية IOC ، مما يسمح بحقن التبعية. هذا هو المكان الذي يتم فيه حقن الخدمات والتبعيات الأخرى في ViewModel.
- init (): يتم استخدام هذه الطريقة لتهيئة معلمات التنقل. يسمى بعد الإنشاء وهو المكان الذي تقوم فيه عادةً بإعداد أي بيانات أو معلمات أولية يتم تمريرها إلى ViewModel.
- RELOADSTATE (): هذه الطريقة هي المسؤولة عن إعادة ترطيب حالة ViewModel بعد TOMBSTONING ، والتي تحدث عند تعليق التطبيق ثم استئنافها بسبب انخفاض ظروف الذاكرة.
- START (): يتم استدعاء هذه الطريقة عند اكتمال التهيئة والإماهة. يتم استخدامه عادة لبدء أي عمليات أو مهام مستمرة.

MVVMCROSS 4.x

يستمر MVVMCROSS 4.x في استخدام تسلسل CIRS ولكنه يقدم بعض التغييرات والتحسينات:

- يبقى البناء كما هو ، باستخدام IOC لحقن التبعية.
- init () لا تزال تهيئة معلمات التنقل ولكنها الآن أكثر مرونة ، مما يسمح بمعلمات التنقل المكتوبة.
- يستمر ReloadState () في التعامل مع الإماهة الحكومية بعد Tombstoning.
- START () متشابهة ولكن يمكن استخدامها بشكل متكرر بسبب إدخال طرق التهيئة غير المتزامنة.

هناك تغيير كبير في MVVMCROSS 4.x هو الدعم المستمر لمعلمات التنقل المكتوبة ، مما يسمح بتمرير بيانات أكثر تنظيماً بين ViewModels. بالإضافة إلى ذلك ، يضع MVVMCROSS 4.x الأساس للتحسينات المستقبلية في التنقل وإدارة دورة الحياة ، والتي يتم تعزيزها بشكل أكبر في MVVMCROSS 5.X.

الاختلافات الرئيسية

- معلمات التنقل: MVVMCROSS 3.x يمرر معلمات التنقل مباشرة إلى الطريقة `init ()` ، بينما يدعم MVVMCROSS 4.x معلمات التنقل المكتوبة ، مما يسهل تمرير البيانات المعقدة بين ViewModels.
- مرونة دورة الحياة: توفر MVVMCROSS 4.x مزيدًا من المرونة في معالجة دورات حياة ViewModel ، خاصة مع إدخال طرق التهيئة غير المتزامنة.
- دعم Tombstoning: يدعم كلا الإصدارين Tombstoning ، لكن MVVMcross 4.x يستمر في تحسين هذه العملية ، مما يضمن أن ViewModels يمكن أن ينقذوا حالتها واستعادتها بشكل فعال.

بشكل عام ، يعتمد MVVMCROSS 4.x على الأساس الذي تم إنشاؤه في 3.x عن طريق تعزيز التنقل وإدارة دورة الحياة والمرونة في التعامل مع البيانات المعقدة والعمليات غير المتزامنة.

الاستشهادات:
[1] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[2] https://stackoverflow.com/questions/49322704/mvvmcross-view-model-lifecycle-restore-not-working
[3] https://stackoverflow.com/questions/15961664/viewmodel-lifecycle-when-does-it-gisposed
[4] https://stackoverflow.com/questions/71959649/does-mvvmcross-have-a-built-in-message-foriewmodel--tell-view-when-viewapea
[5] https://stackoverflow.com/questions/29372480/mvvmcross-viewmodel-life-cycle
[6] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-note-about-views-and-viewmodels
[8] https://www.ramotion.com/blog/what-is-mvvm/
[9] https://www.mvvmcross.com/documentation/fundamentals/navigation
[10] https://www.mvvmcross.com/documentation/fundamentals/inversion-of-control-ioc
[11] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[12] https://github.com/mvvmcross/mvvmcross/issues/2738