Muxammad аl-хorazmiy nomidagi toshkent axborot texnologiyalari universiteti


React Nativeda yangi arxitekturga o’tish masalasi


Download 345.15 Kb.
bet7/8
Sana22.12.2022
Hajmi345.15 Kb.
#1040883
1   2   3   4   5   6   7   8
Bog'liq
amaliyot hisobot

React Nativeda yangi arxitekturga o’tish masalasi




Eski arxitektura JS qatlamidan mahalliy qatlamga o'tkazilishi kerak bo'lgan barcha ma'lumotlari. The Bridge deb nomlangan komponent yordamida ketma-ketlashtirish orqali ishlagan. Ko'prikni ishlab chiqaruvchi qatlam iste'molchi qatlami uchun ba'zi ma'lumotlarni yuboradigan avtobus sifatida tasavvur qilish mumkin. Iste'molchi ma'lumotlarni o'qishi, seriyadan chiqarishi va kerakli operatsiyalarni bajarishi mumkin edi. Ko'prikning o'ziga xos cheklovlari bor edi: Bu asinxron edi: bir qatlam ma'lumotlarni ko'prikka topshirdi va boshqa qatlam ularni qayta ishlashni asinxron tarzda "kutdi", hatto bu juda zarur bo'lmasa ham. U bitta ipli edi: JS bir ipda ishlagan; shuning uchun u dunyoda sodir bo'lgan hisoblashni o'sha bitta ipda bajarish kerak edi. Bu qo'shimcha xarajatlarni keltirib chiqardi: har safar bir qatlam boshqasidan foydalanishi kerak bo'lganda, u ba'zi ma'lumotlarni ketma-ketlashtirishi kerak edi. Boshqa qatlam ularni seriyadan chiqarishi kerak edi. Tanlangan format soddaligi va odamlar tomonidan o‘qilishi uchun JSON edi, ammo engil bo‘lishiga qaramay, u to‘lash uchun qimmatga tushdi.


Yangi arxitekturani takomillashtirish. Yangi Arxitektura ko'prik kontseptsiyasidan voz kechib, boshqa aloqa mexanizmi: JavaScript interfeysi (JSI) foydasiga. JSI - JavaScript ob'ektiga C++ va aksincha havolani saqlashga imkon beruvchi interfeys. Ob'ekt ikkinchisiga havolaga ega bo'lsa, u to'g'ridan-to'g'ri undagi usullarni chaqirishi mumkin. Masalan, C++ ob'ekti endi JavaScript ob'ektidan JavaScript dunyosida usulni bajarishni so'rashi mumkin va aksincha. Ushbu g'oya bir nechta afzalliklarni ochishga imkon berdi: Sinxron bajarish: endi avvalo asinxron bo'lmasligi kerak bo'lgan funktsiyalarni sinxron ravishda bajarish mumkin. Bir vaqtning o'zida: JavaScript-dan turli xil oqimlarda bajariladigan funktsiyalarni chaqirish mumkin. Pastki qo'shimcha xarajatlar: Yangi Arxitektura endi ma'lumotlarni ketma-ketlashtirish/seriyadan chiqarishga majbur emas; shuning uchun to'lash uchun ketma-ketlik soliqlari yo'q. Kod almashish: C++ ni joriy qilish orqali endi barcha platforma agnostik kodlarini mavhumlash va uni platformalar o'rtasida osonlik bilan almashish mumkin. Xavfsizlik turi: JS C++ ob'ektlarida usullarni to'g'ri chaqira olishiga ishonch hosil qilish uchun va aksincha, avtomatik ravishda yaratilgan kod qatlami qo'shildi. Kod Flow yoki TypeScript orqali kiritilishi kerak bo'lgan ba'zi JS spetsifikatsiyasidan boshlab yaratiladi. Ushbu afzalliklar Yangi Native Modul tizimining asoslari va keyingi takomillashtirish uchun sakrash toshidir. Masalan, tezroq va samaraliroq mahalliy komponentlarni taklif qiluvchi yangi rendererni ishlab chiqish mumkin bo'ldi.

6-rasm(React Native arxitekturasi)
Yangi arxitekturaga kirishdan oldin, hozirgi arxitektura qanday ishlashini takrorlaylik. E'tibor bering, men faqat ushbu blogni tushunishga tegishli bo'lgan fikrlarni yoritaman, agar siz hozirgi arxitektura haqida ko'proq bilmoqchi bo'lsangiz, Bianca Dragomirning ushbu blogini tekshirishingiz mumkin. Qisqasini etkanda: RN ilovasini ishga tushirganingizda, barcha JavaScript kodingiz JS Bundle deb nomlangan paketga birlashtiriladi. Mahalliy Kodeks alohida saqlanadi. React Native ilovalarining bajarilishi uchta mavzuda amalga oshiriladi:
1) JavaScript ishi: JS Engine tomonidan JS Bundle-ni ishga tushirish uchun foydalaniladi
2) Native/UI ipi: Native modullarni ishga tushirish va UI rendering, foydalanuvchi imo-ishoralari va boshqalar kabi operatsiyalarni bajarish uchun ishlatiladi.
3) Bundan tashqari, soyali ip deb ataladigan 3-chi ip mavjud bo'lib, u asosiy ekranda ko'rsatishdan oldin elementlarning tartibini hisoblash uchun ishlatiladi. JS va Native Threads o'rtasidagi aloqa ko'prik deb ataladigan ob'ekt orqali amalga oshiriladi. Ma'lumotni ko'prik orqali jo'natishda uni to'plash (optimallashtirish) va JSON sifatida seriyalashtirish kerak. Ushbu ko'prik faqat asinxron aloqani boshqarishi mumkin.

Download 345.15 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling