jQuery ile geliştirilmiş bir library’in Vanilla JS ile yeniden yazılması ve DOM, Event Listeners, Html Binding vs. bazı diğer notlar

Mehmet ALP
3 min readFeb 27, 2024

--

Bu yazıda, bir envato like “jquery preview” library’sini jQuery’den Vanilla JavaScript’e nasıl taşıdığımı ve bu süreçte nelere dikkat ettiğimi ele alacağım.

jQuery ile yazılmış bir ürün önizleme library’sini Vanilla JavaScript’e dönüştürdüm. Dönüştürme işlemini tamamladıktan sonra, Vanilla JavaScript kodunu, orijinal jQuery eklentisinin bulunduğu Mehbub Rashid’in jQuery Envato Preview reposuna bir pull request olarak gönderdim. Bu pull request, repo sahibi tarafından memnuniyetle karşılandı ve yazdığım kod merge edildi.

jQuery’den Vanilla JavaScript’e Geçişin Önemi

jQuery, uzun yıllar boyunca web geliştiricilerine büyük kolaylıklar sağladı. Ancak modern web tarayıcılarının gelişmesiyle birlikte, Vanilla JavaScript (yani, herhangi bir kütüphane veya framework kullanmadan yazılan JavaScript) kullanarak aynı işlevselliği daha hızlı ve daha verimli bir şekilde sağlamak mümkün. Bu yazıda vanilla JS’e geçişte nelere dikkat ettim, bunların detaylarına değindim.

Pluginin Vanilla JavaScript ile Yeniden Yapılandırılması

Dönüştürme sürecine başlamadan önce, orijinal jQuery eklentisinin temel işlevselliğini ve yapısını anlamak önemli. Bu library, kullanıcı bir linkin üzerine hover ettiğinde, ürün hakkında detaylı bilgi gösteren bir önizleme penceresi oluşturur ve içeriği sunar. Orijinal eklenti, fare olaylarını (mouseover ve mouseout) dinler, ve bu olaylar yaşandığında, DOM’a dinamik olarak HTML ekler. Oluşturulan HTML içeriği, önizleme resmi, ürün adı, yazar, kategori ve fiyat bilgilerini içerir.

1. Event Listeners’ların dönüşümü

jQuery’de $(selector).on(event, handler) kullanımıyla kurulan event listeners’lar, Vanilla JavaScript'te element.addEventListener(event, handler) ile atanır. Bu, belirli bir DOM elementi üzerinde gerçekleşen olayları dinlememizi sağlar.

2. DOM Manipülasyonu

jQuery’nin kolay DOM manipülasyonu sağlayan metodları (append(), html(), attr(), vb.), Vanilla JavaScript'te document.createElement(), Element.innerHTML, Element.setAttribute(), ve Node.appendChild() gibi native metodlarla yer değiştirir.

3. Dinamik İçerik Oluşturma

Orijinal eklentide dinamik olarak oluşturulan HTML içeriğini, Vanilla JavaScript kullanarak document.createElement() ve Element.innerHTML ile oluştururuz. Örneğin, bir <div> oluşturmak ve içeriğini doldurmak için bu metodları kullanırız.

4. Ekran’ın belirli alanlarının kullanılması

Orijinal eklentide önizlemenin konumlandırılması için yapılan hesaplamalar, Vanilla JavaScript’te window.innerWidth, window.innerHeight, element.offsetWidth, ve element.offsetHeight kullanılarak tekrarlanır. Bu, önizlemenin ekran dışına taşmamasını sağlar.

5. Performans ve Erişilebilirlik İyileştirmeleri

Vanilla JavaScript kullanımı, sayfanın yüklenme süresi üzerinde olumlu bir etki yapar. Ek olarak, kodun semantik açıdan daha anlaşılır olması, erişilebilirlik ve SEO açısından faydalar sağlar.

Sonuç

jQuery’den Vanilla JavaScript’e geçiş, modern web geliştirme pratiklerine uyum sağlamanın yanı sıra, sayfa performansını artırma ve dış bağımlılıkları azaltma fırsatı sunar. Bu dönüşüm süreci, temel JavaScript bilgisini pekiştirmek ve daha temiz, bakımı kolay kod yazma becerilerini geliştirmek için önemlidir. Özellikle, olay yönetimi, DOM manipülasyonu ve dinamik içerik oluşturma gibi konularda derinlemesine bir anlayış kazandırır. Dönüştürme sürecinde karşılaşılan zorluklar, problem çözme yeteneklerinizi geliştirecek ve JavaScript üzerinde daha sağlam bir hakimiyet kurmamıza yardımcı olacaktır.

Orjinal Repo: https://github.com/MehbubRashid/jquery-envato-preview Pull Request: https://github.com/MehbubRashid/jquery-envato-preview/pull/1

Gelecek yazılarda görüşmek üzere.

--

--

Mehmet ALP
Mehmet ALP

Written by Mehmet ALP

Hello! My name is Alp and I am the founder of Rast Mobile, a software development company focused on delivering high-quality, innovative solutions to clients.

No responses yet