Fluentné väzby a švajčiarske/Tibetové väzby sú súčasťou rámca MVVMCross, ktorý sa používa na vývoj viacerých platforiem. Zatiaľ čo obe metódy uľahčujú väzbu údajov, líšia sa syntaxou a používaním, najmä v spôsobe, akým zvládajú obojsmernú väzbu údajov.
Fluent Bindings
Fluentné väzby v MVVMCross poskytujú modernejší a flexibilnejší spôsob viazania údajov medzi pohľadom a ViewModel. Umožňujú plynulú syntax, ktorá je ľahšie čitateľná a zápisná, čo je pre vývojárov jednoduchšie spravovať komplexné väzby. V kontexte obojsmernej väzby údajov umožňujú plynulé väzby bezproblémovej interakcie medzi pohľadom a ViewModel automatickou aktualizáciou oboch, keď sa zmení obidve strany. Je to užitočné najmä pre úpravy foriem, v ktorých je synchronizácia v reálnom čase rozhodujúca.
Fluentné väzby podporujú konvertory hodnoty, ktoré sú nevyhnutné pre obojsmernú väzbu údajov, keď sa líšia typy údajov medzi pohľadom a ViewModel. Tieto prevodníky implementujú metódy „Convert` aj` Convertback` na spracovanie transformácií údajov v oboch smeroch [7].
Viazanie švajčiarskych/tibetov
Viazania švajčiarskych a tibetov sú staršie syntaxe používané v MVVMCross na väzbu údajov. Podporujú tiež obojsmernú väzbu údajov, ale s inou syntaxou. Napríklad švajčiarska syntax používa jednoduchý formát, v ktorom je cieľová vlastnosť v zobrazení pripojená k zdrojovej ceste v programe ViewModel. Aj keď podporuje obojsmernú väzbu, nemusí byť tak flexibilná alebo čitateľná ako plynulé väzby pre zložité scenáre.
Švajčiarske väzby vyžadujú, aby sa v prípade potreby výslovne špecifikoval režim väzby, ktorý môže obsahovať jednosmernú, obojsmernú alebo jednorazovú väzbu. Nemusia však ponúknuť rovnakú úroveň flexibility s hodnotovými konvertormi ako plynulé väzby.
Porovnanie
- Syntax a čitateľnosť: Fluentné viazania sa vo všeobecnosti čitateľnejšie a ľahšie spravujú, najmä v zložitých scenároch. Viazania Swiss/Tibet majú jednoduchšiu syntax, ale nemusia byť také flexibilné.
- Flexibilita s prevodníkmi hodnoty: Fluentné väzby sú pri riešení hodnotových konvertorov flexibilnejšie, čo je rozhodujúce pre obojsmernú väzbu údajov, keď sa typy údajov líšia medzi pohľadom a ViewModel.
- Použitie: Obe metódy podporujú obojsmernú väzbu údajov, ale plynulé väzby sa častejšie používajú v moderných aplikáciách kvôli ich čitateľnosti a flexibilite.
Stručne povedané, zatiaľ čo fluentné aj švajčiarske väzby podporujú obojsmernú väzbu údajov, plynulé väzby ponúkajú modernejší, flexibilnejší a čitateľnejší prístup, vďaka čomu sú výhodnejšie pre zložité aplikácie.
Citácie:[1] https://www.reddit.com/r/javascript/comments/v993r4/askjs_why_is_oneway_binding_better_than_twoway/
[2] https://medium.datadriveninvestor.com/implementing-two-way-data-binding-without-using-any-any-framework-703963D00A94
[3] https://www.bennadel.com/blog/3538-on-the-irrational-demonization of-wo-wata-wata-binding-in-in-angular.htm
[4] https://www.mvvmcross.com/documentation/funmamentals/data-binding
[5] https://www.telerik.com/blogs/angular-basics-data-binding-part-8-wo-way-day-data-binding
[6] https://handsontable.com/blog/understanding-data-binding-in-react
[7] https://stackoverflow.com/questions/19712103/fluent-binding-and-conversions
[8] https://www.telerik.com/blogs/blazor-basics-data-binding