Photo by Katrin Hauf on Unsplash

GELIŞTIRICI ARAÇLARI

Frontend Geliştirmelerinde Redux DevTools Nasıl Kullanabiliriz?

Redux ile Frontend Geliştirmelerinde kullanılan Redux DevTools eklentisinden bahsetmek istiyorum. Bu eklenti neden önemli ?Geliştirmelerde işlerimize nasıl yardımcı oluyor ?

Onur Dayıbaşı
Frontend Development With JS
4 min readJun 14, 2021

--

Bugün üzerinde duracağımız araç Redux DevTools Aracı, Bu aracı kurma kısmını daha sonra anlatacağım. Öncelikle Redux konunu bilmiyorsunuz daha önceden yazmış olduğum aşağıdaki yazıları okumanızı öneririm.

https://onurdayibasi.com/react-redux/

Redux Store ile geliştirme yapıyoruz. Uygulama işletilirken altyapıda neler dönüyor anlamamız zor olabilir. Örneğin hata oluştu, geliştirme yapacağız bu işletimi nasıl anlayabiliriz?

  • Console Log, Debug ile Console ekranına verileri basmak.
  • Developer Tool üzerinden ilgili kaynak dosyasını erişip o kısımda debugging yapmak
  • Redux DevTools ile uygulamanın State tutan ve değiştiren kısmı gözetleme.
Redux DevTools

Peki Developer Tools Redux Tabından veya kendi ekranından bastığımızda aşağdaki gibi bir ekran açılıyor.

Redux Tool Tabı

Not: Bu kısımda eğer kendi store ilgili bilgileri görmüyorsanız. Aşağıdaki kodla Store oluşturken __REDUX_DEVTOOLS_EXTENSION_COMPOSE__ redux vermemiz gerekiyor.

import { applyMiddleware, createStore, compose } from 'redux';
let middleware = applyMiddleware(promise, thunk);
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const enhancer = composeEnhancers(middleware);
const store = createStore(rootReducer, enhancer);

Bunu tanımladığımızda ekranda aşağıdaki yapıyı bu araç üzerinden

monitor edebilimeli, veya kendimiz mock action oluşturup çalıştırabiliyor olsak çok iyi olurdu.

Redux Mimarisi

Redux DevTool aracının ekranına gittiğimizde araç içerisinde Inspector ve Default Web Sayfanızdakı React App seçili geldiğini görebilirsiniz. Bu kısmı açağıdaki görselde olduğu gibi değiştirebilirsiniz.

Redux DevToosl Tool/App Selection

Not: Genelde bu kısımdaki konfigurasyon ile oynama ihtiyacı duymuyorsunuz genelde.

A. Inspector

Burda ilk olarak Dispatcher gelen Action listesine erişmek istediğimizde aşağıdaki ekran bize sunuyor.

X Anında Redux Store Ne Durumda

Store üzerinde App State her bir Action komutu ile nasıl değişti olayını tek tek takip edebilmeniz için herhangi bir Action tıkladığınızda bu Action geldiği durumda

  • Action detayı nedir?
  • Store’daki State değeri nedir?
  • Diff , değişen state daha görsel anlama
  • Trace, debug.
  • Test

Bizim bir zamana odaklamayı 2 noktadan yapabiliriz. Birisi ilgili action üzerinden

  • Jump düğmesine basmak.
  • Action slider üzerinden ileriye ve geriye gitme şeklinde.
Action Gerçekleştiği Bir Zamana Odaklanma

A.1. Action Sekmesi

Dispatcher gelen Action komutunu farklı farklı arayüzlerde görüntüleyebilirsiniz.

  • Tree View (Ağaç Formatında Görüntüleme)
  • Chart View (Çizelge Formatında Görüntüleme)
  • Raw View (Metin, Text Formatında Görüntüleme)
Action Views

A.2 State, Diff, Trace ve Test Sekmeleri

State Sekmesi: Store içerisindeki tüm reducers state görüntüleyebilmemizi sağlıyor.

State Görüntüleme

Bu araçta diğer bir güzel özellik te state içerisinde istediğiniz bir noktaya (pin) yaparak gidebilme, state içerisinde istediğimiz alt objelere odaklanabilme.

Diff Sekmesi: Store bir önceki durumu ile yeni durumu arasındaki geçişi daha net bir şekilde görebilmenizi sağlar.

Trace Sekmesi : İlgili Action gerçekleşirken Stack Trace gösterilmesini sağlayabilirsiniz. Bunun için yukarıda koda eklediğimiz config biraz değiştirmemiz gerekiyor. { trace: true, traceLimit: 25 } eklememiz gerekiyor.

let middleware = applyMiddleware(promise, thunk);
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ trace: true, traceLimit: 25 }) || compose;
const enhancer = composeEnhancers(middleware);
const store = createStore(rootReducer, enhancer);
Trace Sekmesi

Test Sekmesi: Sizin Reducer Action üzerindeki testlerinizi otomatik üretmenizi sağlayan bir araç. Bunu yaparken test template seçmenizede olanak sağlıyor. Örneğin aşağıdaki şablonlar ile test üretmenizi sağlıyor.

  • Jest
  • Mocha
  • Tape
  • Ava
Test Sekmesi

A.3 Toolbar

Pause Recording: UI üzerinden Dispatcher komutlarının alınmasını durdurmayı sağlıyor. Ama uygulamadaki Store ve Action işleyişi devam ediyor.

Lock Changes: Uygulama üzerinde Redux yapısını kilitleyerek işletimi tamamen durduruyor.

Persist: Uygulama sayfası tekrar reload olsa bile Redux-Tool tutuğu bilgileri silinmesini engelliyor.

Dispatcher: Sanal Action oluşturup gönderip Store istediğiniz gibi güncelleyebilmenizi sağlıyor.

Import/Export: Mevcut State dışarı aktarma veya kaydedilen bir state tekrar buraya yüklemeyi sağlıyor.

Örnek Uygulama ve GitHub

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--

Recommended from Medium

Lists

See more recommendations