{"id":743,"date":"2024-10-12T18:20:40","date_gmt":"2024-10-12T18:20:40","guid":{"rendered":"https:\/\/www.paskutineszinios.lt\/index.php\/2024\/10\/12\/rxdart-ivadas-pagrindai-pradedantiesiems\/"},"modified":"2024-10-12T18:20:40","modified_gmt":"2024-10-12T18:20:40","slug":"rxdart-ivadas-pagrindai-pradedantiesiems","status":"publish","type":"post","link":"https:\/\/www.paskutineszinios.lt\/index.php\/2024\/10\/12\/rxdart-ivadas-pagrindai-pradedantiesiems\/","title":{"rendered":"\u201eRxDart\u201c \u012fvadas: pagrindai pradedantiesiems"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>Tur\u0117site b\u016bti susipa\u017ein\u0119 su Dartu, nes <strong>\u201eFlutter\u201c programos k\u016brimas<\/strong>. \u201eDart\u201c yra populiari programavimo kalba, kuri\u0105 k\u016br\u0117jai naudoja kurdami nebenaudojamas programas.<\/p>\n<p>\u201eRxDart\u201c yra \u201eDart\u201c pl\u0117tinys, ta\u010diau reaktyvioji programavimo bibliotekos versija, kuri naudoja \u201eDart\u201c b\u016bdingas galimybes ir i\u0161ple\u010dia jas bei \u012ftaisytuosius srautus.<\/p>\n<p>Naudodamiesi \u0161iomis i\u0161pl\u0117stin\u0117mis Reactive Extensive (Rx) galimyb\u0117mis ir principais, k\u016br\u0117jai gali ra\u0161yti ir palaikyti asinchronin\u012f kod\u0105.<\/p>\n<p>Jo Rx sistema standartizuotu b\u016bdu sudaro \u012fvykiais pagr\u012fstas programas. \u201eRxDart\u201c taip pat naudoja stebimas sekas kartu su LINQ stiliaus u\u017eklaus\u0173 operatoriais program\u0173 ar programin\u0117s \u012frangos k\u016brimui.<\/p>\n<p>\u201eRxDart\u201c valdo b\u016bsen\u0105, tvarko asinchroninius duomenis ir ai\u0161kiai, suprantamai ir deklaratyviai reaguoja \u012f vartotojo \u012fvestis. \u0160is straipsnis yra tik \u012fvadas \u012f RxDart. Prad\u0117kime tai daryti!<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Turinys:<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.paskutineszinios.lt\/index.php\/2024\/10\/12\/rxdart-ivadas-pagrindai-pradedantiesiems\/#Kas_yra_reaktyvusis_programavimas_RxDart\" >Kas yra reaktyvusis programavimas RxDart?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.paskutineszinios.lt\/index.php\/2024\/10\/12\/rxdart-ivadas-pagrindai-pradedantiesiems\/#%E2%80%9EDart%E2%80%9C_integruoti_srautai\" >\u201eDart\u201c integruoti srautai<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.paskutineszinios.lt\/index.php\/2024\/10\/12\/rxdart-ivadas-pagrindai-pradedantiesiems\/#%E2%80%9ERxDart%E2%80%9C_%E2%80%9EDart%E2%80%9C_srautu_ispletimas\" >\u201eRxDart\u201c: \u201eDart\u201c sraut\u0173 i\u0161pl\u0117timas<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.paskutineszinios.lt\/index.php\/2024\/10\/12\/rxdart-ivadas-pagrindai-pradedantiesiems\/#Dalykai\" >Dalykai<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.paskutineszinios.lt\/index.php\/2024\/10\/12\/rxdart-ivadas-pagrindai-pradedantiesiems\/#Operatoriai\" >Operatoriai<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.paskutineszinios.lt\/index.php\/2024\/10\/12\/rxdart-ivadas-pagrindai-pradedantiesiems\/#Kodel_%E2%80%9EFlutter%E2%80%9C_naudoti_%E2%80%9ERxDart%E2%80%9C\" >Kod\u0117l \u201eFlutter\u201c naudoti \u201eRxDart\u201c?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.paskutineszinios.lt\/index.php\/2024\/10\/12\/rxdart-ivadas-pagrindai-pradedantiesiems\/#RxDart_ir_BLoC_modelis\" >RxDart ir BLoC modelis<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.paskutineszinios.lt\/index.php\/2024\/10\/12\/rxdart-ivadas-pagrindai-pradedantiesiems\/#RxDart_privalumai\" >RxDart privalumai<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.paskutineszinios.lt\/index.php\/2024\/10\/12\/rxdart-ivadas-pagrindai-pradedantiesiems\/#Isvada\" >I\u0161vada<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Kas_yra_reaktyvusis_programavimas_RxDart\"><\/span><span id=\"What_is_Reactive_Programming_in_RxDart\">Kas yra reaktyvusis programavimas RxDart?<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>Reaktyvusis programavimas<\/strong> yra programavimo paradigma, kuri yra susijusi su duomen\u0173 srautu ir poky\u010di\u0173 sklaida. Reaktyvioje sistemoje egzistuoja keli komponentai ir jie individualiai reaguoja \u012f duomen\u0173 poky\u010dius, vykstan\u010dius realiuoju laiku.<\/p>\n<p>\u0160ie atsakymai yra naudingi programoms, kuriose asinchronini\u0173 duomen\u0173 sraut\u0173 valdymas yra labai svarbus.<\/p>\n<p>Pavyzd\u017eiui, galite \u012fsivaizduoti paie\u0161k\u0105, kuri u\u017eklausa serverio rezultat\u0173, kai tik pradedate vesti tekst\u0105. Tod\u0117l galite naudoti reaktyv\u0173j\u012f programavim\u0105 vietoj rankinio b\u016bsenos ir API i\u0161kvietim\u0173 valdymo, kad gal\u0117tum\u0117te steb\u0117ti vartotojo \u012fvest\u012f.<\/p>\n<p>Taip pat galite automati\u0161kai skleisti svarbius API i\u0161kvietimus ir vartotojo s\u0105sajos atnaujinimus, kai duomenys kei\u010diasi.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E2%80%9EDart%E2%80%9C_integruoti_srautai\"><\/span><span id=\"Darts_Built-in_Streams\">\u201eDart\u201c integruoti srautai<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u201eDart\u201c yra su pagrindine API, kuri pasir\u016bpina asinchroniniais duomenimis naudojant \u201eStreams\u201c. \u0160ie srautai nurodomi dviej\u0173 tip\u0173 asinchronini\u0173 \u012fvyki\u0173 seka arba tvarka:<\/p>\n<ul>\n<li>Viena prenumerata leid\u017eia vienam klausytojui klausytis vienu metu<\/li>\n<li>Transliacija, leid\u017eianti daugeliui klausytoj\u0173<\/li>\n<\/ul>\n<p>Nekyla n\u0117 trupu\u010dio abejoni\u0173 d\u0117l srauto tvirtumo, ta\u010diau da\u017enai jie tampa vaizdingi, kai vyksta sud\u0117tingos duomen\u0173 transformacijos ir deriniai.<\/p>\n<p>\u0160tai kod\u0117l ir kada mums reikia \u201eRxDart\u201c palaikymo, kuris i\u0161ple\u010dia \u201eDart\u201c fakultetus ir remiasi operatoriais bei \u0161ablonais, kilusiais i\u0161 kit\u0173 kalb\u0173, pvz., \u201eSwift\u201c.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E2%80%9ERxDart%E2%80%9C_%E2%80%9EDart%E2%80%9C_srautu_ispletimas\"><\/span><span id=\"RxDart_Extending_Darts_Streams\">\u201eRxDart\u201c: \u201eDart\u201c sraut\u0173 i\u0161pl\u0117timas<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Kadangi \u201eRxDart\u201c yra sukurtas \u201eDart&#8217;s Stream\u201c API, jis gali pasi\u016blyti daug \u012franki\u0173, skirt\u0173 asinchroniniams duomen\u0173 srautams kurti, derinti, transformuoti ir valdyti. I\u0161 esm\u0117s RxDart naudoja subjektus ir operatorius, kurie yra atsakingi u\u017e lankst\u0173 ir galing\u0105 srauto manipuliavim\u0105.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Dalykai\"><\/span><span id=\"Subjects\">Dalykai<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>RxDart apima subjekt\u0105, kuris vadinamas specialiu srautu, kuris turi dvejop\u0105 paskirt\u012f, nes veikia kaip:<\/p>\n<p>Tai rei\u0161kia, kad subjektas gali klausytis kit\u0173 sraut\u0173 ir tuo pa\u010diu gali transliuoti savo vertybes savo klausytojams. \u012evairi\u0173 r\u016b\u0161i\u0173 RxDart temos yra:<\/p>\n<ul>\n<li><strong>PublishSubject<\/strong>: jis pa\u0161alina visus elementus prenumeratoriams nuo tada, kai jie u\u017esiprenumeruoja. Ji neatkuria sen\u0173 element\u0173.<\/li>\n<li><strong>BehaviorSubject<\/strong>: Tai gana pana\u0161u \u012f PublishSubject, bet naujiems prenumeratoriams gali atkurti naujausi\u0105 arba naudot\u0105 element\u0105.<\/li>\n<li><strong>ReplaySubject<\/strong>: perkelia ir i\u0161saugo i\u0161si\u0173st\u0173 element\u0173 istorij\u0105 ir atkuria juos, kai u\u017esiprenumeruoja nauji prenumeratoriai.<\/li>\n<li><strong>AsyncSubject<\/strong>: jis i\u0161duoda tik paskutin\u012f element\u0105, kai srautas bus baigtas ir galutinis.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Operatoriai\"><\/span><span id=\"Operators\">Operatoriai<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Operatoriai yra reik\u0161mingiausi ir konkretiausi RxDart vienetai. Be sraut\u0173 transformavimo, filtravimo ir derinimo, jie taip pat gali jais manipuliuoti deklaratyviais ir sudarytais b\u016bdais. Kai kurie da\u017eni operatoriai yra:<\/p>\n<ul>\n<li><strong>\u017eem\u0117lap\u012f<\/strong>: paver\u010dia kiekvien\u0105 skleid\u017eiam\u0105 element\u0105 \u012f kit\u0105 element\u0105.<\/li>\n<li><strong>plok\u0161\u010dias \u017eem\u0117lapis<\/strong>: sulieja kelis srautus \u012f vien\u0105 atskir\u0105 sraut\u0105.<\/li>\n<li><strong>debounceTime<\/strong>: nepaiso siun\u010diam\u0173 element\u0173, jei per tam tikr\u0105 laikotarp\u012f i\u0161leid\u017eiamas kitas elementas. Naudinga paie\u0161kos \u012fvestims.<\/li>\n<li><strong>switchMap<\/strong>: persijungia \u012f nauj\u0105 sraut\u0105, kai i\u0161leid\u017eiamas naujas \u012fvykis, at\u0161aukdamas ankstesn\u012f sraut\u0105.<\/li>\n<li><strong>sujungti Naujausias<\/strong>: sujungia ir sujungia naujausias vertes i\u0161 keli\u0173 sraut\u0173.<\/li>\n<\/ul>\n<p>\u0160ie operatoriai gali sudaryti sud\u0117tingas asinchronines operacijas be gili\u0173 atgalini\u0173 skambu\u010di\u0173, tod\u0117l kodas tampa lengviau skaitomas, valdomas ir pri\u017ei\u016brimas.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Kodel_%E2%80%9EFlutter%E2%80%9C_naudoti_%E2%80%9ERxDart%E2%80%9C\"><\/span><span id=\"Why_Use_RxDart_in_Flutter\">Kod\u0117l \u201eFlutter\u201c naudoti \u201eRxDart\u201c?<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Plazd\u0117jimas, a <strong>keli\u0173 platform\u0173 sistema<\/strong> ir vartotojo s\u0105sajos \u012franki\u0173 rinkinys, taip pat paremtas \u012fvykiais pagr\u012fstomis pl\u0117tros koncepcijomis.<\/p>\n<p>\u201eFlutter\u201c programoms taip pat reikalingas efektyvus srauto valdymas, pradedant reagavimu \u012f vartotojo \u012fvest\u012f ir baigiant asinchronini\u0173 duomen\u0173 apdorojimu. \u201eRxDart\u201c integruojasi su \u201eFlutter\u201c, kad tvarkyt\u0173 duomenis ir vartotojo s\u0105sajos b\u016bsen\u0105 reaktyviai ir vienu metu.<\/p>\n<p>Kai kurie \u012fprasti \u201eRxDart\u201c naudojimo \u201eFlutter\u201c atvejai yra \u0161ie:<\/p>\n<ol>\n<li><strong>Formos patvirtinimas<\/strong>: RxDart patvirtina formos laukus realiuoju laiku, steb\u0117damas \u012fvesties lauk\u0173 poky\u010dius ir atitinkamai atnaujindamas formos b\u016bsen\u0105.<\/li>\n<li><strong>Paie\u0161kos funkcionalumas<\/strong>: reaktyviosios paie\u0161kos juostos \u012fdiegimas, kuri klausosi naudotojo \u012fvesties, at\u0161aukia paie\u0161kos u\u017eklaus\u0105, kad i\u0161vengt\u0173 nereikaling\u0173 API i\u0161kvietim\u0173, ir dinami\u0161kai atnaujina paie\u0161kos rezultatus.<\/li>\n<li><strong>Valstyb\u0117s valdymas<\/strong>: \u201eRxDart\u201c padeda valdyti programos b\u016bsen\u0105 reaktyviu b\u016bdu. Steb\u0117dami duomen\u0173 srautus galite u\u017etikrinti, kad vartotojo s\u0105saja b\u016bt\u0173 sinchronizuota su pagrindiniu duomen\u0173 modeliu.<\/li>\n<li><strong>Sud\u0117tingi duomen\u0173 srautai<\/strong>: Kai programai reikia atlikti kelias asinchronines u\u017eduotis, RxDart operatoriai suteikia \u0161var\u0173 b\u016bd\u0105 sujungti ir valdyti \u0161ias u\u017eduotis.<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"RxDart_ir_BLoC_modelis\"><\/span><span id=\"RxDart_and_BLoC_Pattern\">RxDart ir BLoC modelis<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>BLoC arba verslo logikos komponento modelis yra dizaino forma, padedanti b\u016bsenoje <strong>\u201eFlutter\u201c valdymas<\/strong>ir jis taip pat gerai integruojamas su RxDart.<\/p>\n<p>BLoC \u0161ablon\u0105 galima naudoti norint atskirti pristatymo sluoksn\u012f nuo verslo logikos, atskleid\u017eiant \u012fvesties ir i\u0161vesties srautus. \u201eRxDart\u201c pabr\u0117\u017eia \u0161\u012f model\u012f kurdama ir tvarkydama \u012fvyki\u0173 ir b\u016bsen\u0173 srautus.<\/p>\n<p>\u0160tai paprastas pavyzdys, kaip RxDart naudojamas su BLoC \u0161ablonu:<\/p>\n<p>class CounterBloc {<\/p>\n<p>final _counterSubject = BehaviorSubject<int>();<\/p>\n<p>\/\/ Atidenkite sraut\u0105 skaitikliui<\/p>\n<p>Srautas<int> gauti counterStream => _counterSubject.stream;<\/p>\n<p>\/\/ Prid\u0117kite vert\u0119 prie srauto<\/p>\n<p>void increment() {<\/p>\n<p>_counterSubject.add(_counterSubject.value + 1);<\/p>\n<p>}<\/p>\n<p>\/\/ I\u0161meskite sraut\u0105<\/p>\n<p>galioti disponuoti () {<\/p>\n<p>_counterSubject.close();<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>\u0160iame pavyzdyje matome, kaip \u201eBehaviorSubject\u201c saugo ir tvarko skaitiklio b\u016bsen\u0105, o \u201ecounterStream\u201c suteikia vartotojo s\u0105sajai galimyb\u0119 klausytis skaitiklio poky\u010di\u0173.<\/p>\n<p>Kai \u012f proces\u0105 \u012ftraukiamas padidinimo metodas, jis prideda srautui naujos vert\u0117s ir nuosavo kapitalo, o visi \u201ecounterStream\u201c prenumeruojami valdikliai bus automati\u0161kai atnaujinti laukiami ir reikalingi naujiniai.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"RxDart_privalumai\"><\/span><span id=\"Advantages_of_RxDart\">RxDart privalumai<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ol>\n<li>Deklaratyvus: RxDart gali pad\u0117ti perduoti duomenis ir <strong>leisti k\u016br\u0117jams<\/strong> apib\u016bdinti j\u012f deklaratyviai. U\u017euot rankiniu b\u016bdu vald\u0119s b\u016bsen\u0105 ir atgalinius skambu\u010dius, jis gali pad\u0117ti transformuoti srautus.<\/li>\n<li>Sud\u0117tingumas: \u201eRxDart\u201c operatoriai gali sudaryti sud\u0117tingas asinchronines darbo eigas moduliniu b\u016bdu. Galite grandin\u0117s operatorius apdoroti duomen\u0173 srautus skaitomu ir pri\u017ei\u016brimu b\u016bdu.<\/li>\n<li>Efektyvumas: naudodami tokius operatorius kaip debounce, throttle ir differentUntilChanged, galite optimizuoti tinklo u\u017eklausas ir i\u0161vengti perteklini\u0173 ir nereikaling\u0173 vartotojo s\u0105sajos naujini\u0173.<\/li>\n<li>Nuoseklumas: \u201eRxDart\u201c si\u016blo nuosekli\u0105 API, kuri tvarko asinchroninius \u012fvykius ir suma\u017eina k\u016br\u0117j\u0173 pa\u017einimo apkrov\u0105, kai jie s\u0105veikauja su \u012fvairi\u0173 tip\u0173 asinchroniniais duomenimis.<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"Isvada\"><\/span><span id=\"Conclusion\">I\u0161vada<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u201eRxDart\u201c suteikia \u201eDart\u201c ir \u201eFlutter\u201c reaktyvaus programavimo geb\u0117jim\u0173 ir tvirtumo, leisdama k\u016br\u0117jams deklaratyviai ir komponuojamai tvarkyti asinchroninius duomen\u0173 srautus.<\/p>\n<p>Galite sukurti nedidel\u0119 program\u0117l\u0119 su paie\u0161kos funkcija arba sud\u0117ting\u0105 program\u0105 su keliais asinchroniniais duomen\u0173 srautais; \u201eRxDart\u201c visada tur\u0117s reikiam\u0173 \u012franki\u0173 ir galimybi\u0173 eleganti\u0161kai valdyti b\u016bsen\u0105, \u012fvykius ir \u0161alutinius poveikius.<\/p>\n<p>I\u0161pl\u0117sdama \u201eDart\u201c vietinius srautus, \u201eRxDart\u201c suteikia papildom\u0173 funkcij\u0173 per savo objektus ir operatorius. Taigi, Flutter ir Dart gali tapti geid\u017eiamiausiu ir puikiu pasirinkimu <strong>ra\u0161yti \u0161varesn\u012f, labiau pri\u017ei\u016brim\u0105 kod\u0105<\/strong>.<\/p>\n<p>Jei jums reikia daugiau pagalbos naudojant RxDart, susisiekite su \u0161viesiais Xavor vadovais, kurie gali pad\u0117ti nukreipti j\u016bs\u0173 versl\u0105 ir interneto pl\u0117tr\u0105 teisinga linkme.<\/p>\n<p>I\u0161naudokite visas \u201eFlutter\u201c ir \u201eRxDart\u201c galimybes ir visam laikui pakeiskite savo programos k\u016brimo scenarij\u0173.<\/p>\n<\/p><\/div>\n<p><script>\n!function(f,b,e,v,n,t,s)\n{if(f.fbq)return;n=f.fbq=function(){n.callMethod?\nn.callMethod.apply(n,arguments):n.queue.push(arguments)};\nif(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\nn.queue=();t=b.createElement(e);t.async=!0;\nt.src=v;s=b.getElementsByTagName(e)(0);\ns.parentNode.insertBefore(t,s)}(window, document,'script',\n'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\nfbq('init', '688143682758843');\nfbq('track', 'PageView');\n<\/script><br \/>\n<br \/><br \/>\n<br \/><a href=\"https:\/\/www.xavor.com\/blog\/rxdart-basics-for-beginners\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tur\u0117site b\u016bti susipa\u017ein\u0119 su Dartu, nes \u201eFlutter\u201c programos k\u016brimas. \u201eDart\u201c yra populiari programavimo kalba, kuri\u0105 k\u016br\u0117jai naudoja kurdami nebenaudojamas programas. \u201eRxDart\u201c yra \u201eDart\u201c pl\u0117tinys, ta\u010diau reaktyvioji programavimo bibliotekos versija, kuri naudoja \u201eDart\u201c b\u016bdingas galimybes ir i\u0161ple\u010dia jas bei \u012ftaisytuosius srautus. Naudodamiesi \u0161iomis i\u0161pl\u0117stin\u0117mis Reactive Extensive (Rx) galimyb\u0117mis ir principais, k\u016br\u0117jai gali ra\u0161yti ir palaikyti asinchronin\u012f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":744,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4],"tags":[1006,1007,1008,1005],"class_list":["post-743","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technologijos-ismanieji-irenginiai","tag-ivadas","tag-pagrindai","tag-pradedantiesiems","tag-rxdart"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.paskutineszinios.lt\/index.php\/wp-json\/wp\/v2\/posts\/743","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.paskutineszinios.lt\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.paskutineszinios.lt\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.paskutineszinios.lt\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.paskutineszinios.lt\/index.php\/wp-json\/wp\/v2\/comments?post=743"}],"version-history":[{"count":0,"href":"https:\/\/www.paskutineszinios.lt\/index.php\/wp-json\/wp\/v2\/posts\/743\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.paskutineszinios.lt\/index.php\/wp-json\/wp\/v2\/media\/744"}],"wp:attachment":[{"href":"https:\/\/www.paskutineszinios.lt\/index.php\/wp-json\/wp\/v2\/media?parent=743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.paskutineszinios.lt\/index.php\/wp-json\/wp\/v2\/categories?post=743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.paskutineszinios.lt\/index.php\/wp-json\/wp\/v2\/tags?post=743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}