JSI
- React Native kursu
- Uzman
- Ders 2/47
- 5 dk
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
// JSI modülünü çağır
// Sonucu rows değişkenine ata
export default function App() {
return null;
}Örnek çözüm
// 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?
global.____ = createHostObject();
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 |