CodeBlanks Logo Icon CodeBlanks

JSI

JSI (JavaScript Interface) kavramını öğrenirsin.

JSI nedir?

JSI (JavaScript Interface), JavaScript motoru ile C++ kodu arasındaki doğrudan köprüdür. JavaScript tarafı bir C++ nesnesinin metotlarını doğrudan çağırabilir; seri hale getirme (serialization) yapılmaz.

Eski köprüde her mesaj JSON olarak paketlenip karşıya geçerdi; bu gecikme yaratırdı. JSI'da nesne referansları elden geçer; senkron çağrı mümkündür. global nesnesine C++ host nesneleri eklenir.

Senkron çağrılar

JSI sayesinde bazı native işlemler senkron olabilir. Eski köprüde tüm native çağrılar asenkrondu; sonuç Promise dönerdi. JSI'da doğrudan değer dönebilir.

Örnek: react-native-sqlite-storage'ın JSI tabanlı sürümü sorgu sonucunu senkron döner. Bu, yoğun veri işleyen listelerde kayda değer hız artışı verir.

Uygulama JSI modül çağrısı

JSI tabanlı bir Database modülünün query metodunu çağır. Sonucu rows değişkenine ata. Çağrı senkron olsun (await kullanma).

Başlangıç kodu

App.js
// JSI modülünü çağır
// Sonucu rows değişkenine ata

export default function App() {
  return null;
}

Örnek çözüm

App.js
// JSI modülünü çağır
const rows = Database.query('SELECT * FROM users');

export default function App() {
  return null;
}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 JSI'nin en büyük avantajı nedir?

  • JSON serileştirmeyi kaldırması
  • CSS desteği getirmesi
  • Daha az bileşen yazmak Doğru cevap
  • TypeScript'i zorunlu kılması

Açıklama: JSI serileştirmeyi kaldırır, senkron doğrudan erişim verir.

2 JSI host nesnesi nereye eklenir?

Soru
global.____ = createHostObject();
Cevap
global.MyModule = createHostObject();

Açıklama: Host nesneleri global üzerinden erişilir.

3 JSI kavramlarını eşleştir

Kavram Anlamı
JSI Doğrudan C++ bağlantısı
Serileştirme JSON paketleme
Senkron çağrı Sonucu bekleyen çağrı
Host nesnesi C++ tarafının JS'ye açtığı nesne

Uzman bölümündeki tüm dersler