Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Каковы альтернативы использованию докладчиков View в MVVMcross


Каковы альтернативы использованию докладчиков View в MVVMcross


В MVVMcross ведущие View играют решающую роль в управлении представлением ViewModels на разных платформах. Однако, если вы ищете альтернативы или способы настроить логику презентации, помимо того, что предлагают докладчики, вот некоторые подходы:

1. Настройка просмотра докладчиков **

Вы можете расширить или изменить существующие представления, подкладывая их или реализуя интерфейс `imvxviewpresenter`. Это позволяет вам адаптировать логику презентации к конкретным потребностям, таким как обработка различных размеров экрана или ориентации на различных платформах [1] [3]. Например, вы можете по -разному отобразить виду по телефону по сравнению с планшетом.

2. Использование намеков на презентация **

MVVMcross предоставляет механизм, называемый намеками на презентацию (`mvxpresentationHint`), который позволяет вам запросить изменения в пользовательском интерфейсе, не обязательно показывая новую ViewModel. Вы можете создавать пользовательские подсказки для сигнала конкретных действий для докладчика, таких как закрытие ViewModel или изменение навигационного стека [1] [3]. Этот подход полезен для обработки сложных взаимодействий пользовательского интерфейса, которые не покрываются докладчиками по умолчанию.

3. Альтернативные фреймворки MVVM **

Если вы ищете более широкое изменение в своей архитектуре MVVM, вы можете рассмотреть альтернативные рамки, которые предлагают различные подходы к презентации и навигации. Некоторые популярные альтернативы включают:
- Призма: известная своей надежной поддержкой в ​​WPF, формах Xamarin и платформах UNO, Prism обеспечивает комплексную основу для построения обслуживания применений [4].
- Reactiveui: эта структура фокусируется на функциональном реактивном программировании, что позволяет получить более абстрактную и тестируемую логику пользовательского интерфейса [4].
- Caliburn.micro: легкая структура, которая поддерживает шаблоны MV* на платформах XAML, подчеркивая быстрое развитие, не жертвуя качеством кода [4].

4. Пользовательская навигационная логика **

Вместо того, чтобы полагаться исключительно на представление докладчиков, вы можете реализовать пользовательскую логику навигации непосредственно в вашем приложении. Это может включать использование API-интерфейсов навигации для конкретной платформы или создание пользовательской навигационной службы, которая интегрируется с функциями навигации MVVMcross ViewModel-ViewModel [6].

5. Диалоги и развороты **

Для сценариев, где вам необходимо отображать контент вне стандартного потока навигации, MVVMcross поддерживает диалоги и развороты. Они могут быть настроены в соответствии с конкретными потребностями в представлении, предлагая альтернативу традиционной навигации на основе страниц [9].

Таким образом, в то время как докладчики View являются мощным инструментом в MVVMcross, вы можете настроить или расширить их, использовать подсказки для презентации для динамических изменений пользовательского интерфейса или изучить альтернативные фреймворки MVVM и пользовательские навигационные подходы для достижения желаемой логики презентации для вашего приложения.

Цитаты:
[1] https://www.mvvmcross.com/documentation/fundamentals/view-presenters
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://gregshackles.com/presenters-in-mvvmcross--primer/
[4] https://dotnet.libhunt.com/mvvmcross-alternative
[5] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[6] https://stackoverflow.com/questions/18735497/mvvmcross-navigation-on-creen
[7] https://stackoverflow.com/questions/22601018/what-are-the-alternative-fomodule-view-presentermvp-design-pattern
[8] https://yanxiaodi.gitbook.io/xamarin-mvvmcross-handbook/using-mvvmcross-to-create-your-first-xamarin-app/creathing-the-ios-project/understand-data-binding-syntax
[9] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup