CodeBlanks Logo Icon CodeBlanks

Dependency injection

Dependency injection öğrenirsin.

Dependency injection

Dependency injection (DI), bir bileşenin bağımlılıklarını dışarıdan almasıdır. Bileşen kendi new UserService() diye çağırmaz; userService prop ya da constructor ile verilir.

Bu sayede bileşen somut sınıfa değil, interface'e bağımlı olur. Testte gerçek servis yerine mock verilir; üretimde gerçek servis. React tarafında Context ile DI yapılır.

React ile DI

React'te DI genellikle Context ile yapılır. Bir RepoContext oluşturulur; gerçek veya mock repository Provider'a verilir. Bileşenler useContext ile repository'yi alır ve doğrudan new çağrısı yapmaz.

Testte Provider'a mock repository verilir; bileşen farkında olmadan mock'la çalışır. Bu, unit test yazmayı kolaylaştırır; gerçek ağ gerekmez.

Uygulama RepoContext oluştur

Bir RepoContext oluştur. createContext kullan, varsayılan değer null olsun. Sonucu export ile dışa aktar. createContext'i react'tan içe aktar.

Başlangıç kodu

App.js
import React from 'react';

// createContext'i react'tan içe aktar
// RepoContext'i oluştur

export default RepoContext;

Örnek çözüm

App.js
import React, { createContext } from 'react';

const RepoContext = createContext(null);

export default RepoContext;

Soru ve cevaplar

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

1 DI yoluyla verilen şeye ne denir?

Soru
Bir bileşenin DI ile dışarıdan aldığı şeye ____ denir.
Cevap
Bir bileşenin DI ile dışarıdan aldığı şeye dependency denir.

Açıklama: Dışarıdan verilen şeye dependency denir.

2 DI parçalarını eşleştir

Kavram Anlamı
Context Bağımlılık taşıyıcısı
Provider Değeri verir
useContext Değeri alır
Mock Test değeri

3 React'te DI hangi mekanizma ile yapılır?

  • StyleSheet ile Doğru cevap
  • useEffect ile
  • Context ve Provider
  • FlatList ile

Açıklama: Context + Provider ile bağımlılık taşınır.

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