0Pricing
React Academy · Ders

Clipboard API: React'te Kopyalama ve Yapıştırma

Modern Clipboard API'yi kullanarak panoya kopyalama düğmeleri uygulayın ve eski tarayıcılarda sorunsuz bir geri dönüş sağlayın

Clipboard API: React'te Kopyalama ve Yapıştırma, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.

Panoya Yazma

navigator.clipboard.writeText(text), sistem panosuna bir dize yazar ve bir vaat döndürür. Bu, eski execCommand yaklaşımının modern karşılığıdır. Vaadi her zaman await ile bekleyin ve örneğin kullanıcı pano erişimini reddettiğinde oluşabilecek reddedilmeyi yönetin.

Panodan Okuma

navigator.clipboard.readText(), geçerli pano içeriğini bir dize olarak okur ve ayrıca bir vaat döndürür. Okuma, clipboard-read iznini gerektirir; tarayıcı kullanıcıdan bu izni vermesini ister. Tipik React uygulamalarında pano okuma, yazmaya göre daha seyrek kullanılır.

Panoya Yazma Kullanıcı Hareketi Gerektirir

Tarayıcılar, clipboard.writeText çağrısının yalnızca tıklama veya tuşa basma olayı gibi bir kullanıcı hareketi işleyicisi içinde yapılmasını zorunlu kılar. Bu çağrıyı bir useEffect içinde veya hareketten sonra eşzamansız olarak yapmak güvenlik hatasına neden olur. Yazma işlemini her zaman doğrudan bir onClick işleyicisinden tetikleyin.

Panoya Kopyalama Arayüzü Kalıbı

Standart kalıp şöyledir: kullanıcı bir kopyalama düğmesine tıklar, işleyiciniz navigator.clipboard.writeText(value) çağrısını yapar, işlem başarılı olduğunda copied durumunu true olarak ayarlarsınız ve düğme geçici olarak bir onay işareti veya "Kopyalandı!" etiketini gösterir. Kısa bir gecikmeden sonra düğme normal durumuna döner.

useCopyToClipboard Kancası Oluşturma

Mantığı, bir demet döndüren useCopyToClipboard kancasında kapsülleyin: [copied, copyFn]. copied mantıksal değeri arayüz geri bildirimini yönetir, copyFn ise kopyalanacak metni alır. Kanca, eşzamansız yazma işlemini ve oluşabilecek hataları kendi içinde yöneterek bileşenlerin basit kalmasını sağlar.

Kopyalandı Durumunu Sıfırlama

Kancanın içinde, kopyalama başarılı olduktan sonra setCopied(true) çağrısıyla durumu ayarlayın ve setTimeout(() => setCopied(false), 2000) ile sıfırlama zamanlayın. Zaman aşımı ID'sini saklayın ve bileşen kaldırıldığında durum güncellemelerini önlemek için bir useEffect temizleme işleminde zaman aşımını temizleyin. Bu, "kaldırılmış bir bileşende durum güncellenemiyor" uyarısını önler.

execCommand ile Eski Yedek Çözüm

Daha eski tarayıcılar ve HTTPS kullanmayan sayfalar Pano uygulama programlama arayüzünü desteklemez. Eski yedek çözüm geçici bir textarea oluşturur, değerini ayarlar, gövdeye ekler, document.execCommand('copy') çağrısını yapar ve öğeyi kaldırır. Bu yaklaşım eşzamanlıdır ve her yerde çalışır; ancak kullanımdan kaldırılmıştır.

Pano Arayüzünün Kullanılabilirliğini Algılama

Pano uygulama programlama arayüzünü kullanmadan önce şunu kontrol edin: navigator.clipboard && typeof navigator.clipboard.writeText === 'function'. Kullanılamıyorsa eski execCommand yaklaşımına geçin. Bu koruyucu kontrol, arayüzün desteklenmediği ortamlarda çalışma zamanı hatalarını önler.

Pano Okuma İzni

Pano okuma, İzinler uygulama programlama arayüzü üzerinden kullanıcı izni gerektirir. Geçerli durumu sorgulayabilirsiniz: navigator.permissions.query({ name: 'clipboard-read' }), granted, denied veya prompt değerlerinden birine sahip bir PermissionStatus döndürür. readText() çağrıldığında tarayıcı otomatik olarak izin ister.

HTTPS Gereksinimi

Pano uygulama programlama arayüzü yalnızca güvenli bağlamlarda (HTTPS veya localhost) kullanılabilir. HTTP sayfalarında navigator.clipboard değeri undefined olur. Pano içeriği hassas olabileceğinden bu bir güvenlik kısıtlamasıdır. Boş başvuru hatalarını önlemek için yöntemlerine başvurmadan önce arayüzün kullanılabilirliğini her zaman kontrol edin.

jsdom'da Pano Sınaması

Jest tarafından kullanılan jsdom, Pano API'sini uygulamaz. Sınama kurulumunuzda onu taklit edin: Object.assign(navigator, { clipboard: { writeText: jest.fn().mockResolvedValue(undefined) } }). Bu sayede gerçek bir tarayıcı ortamı olmadan bileşeninizin writeText yöntemini doğru bağımsız değişkenle çağırdığını sınayabilirsiniz.

Panoya Yazma Gereksinimleri

navigator.clipboard.writeText() tarayıcıda ne zaman güvenle çağrılabilir?

Ders Özeti: React'te Pano API'si

Metin kopyalamak için navigator.clipboard.writeText() yöntemini bir tıklama işleyicisinin içinde kullanın. Zaman ayarlı sıfırlama özelliğine sahip, [copied, copyFn] döndüren bir useCopyToClipboard kancası oluşturun. API'nin kullanılabilirliğini her zaman denetleyin, eski tarayıcılar için execCommand alternatifi sağlayın ve Jest sınamalarında navigator.clipboard nesnesini taklit edin.

Sıkça Sorulan Sorular

“Clipboard API: React'te Kopyalama ve Yapıştırma” dersi ücretsiz mi?

Evet — “Clipboard API: React'te Kopyalama ve Yapıştırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.

“Clipboard API: React'te Kopyalama ve Yapıştırma” dersinde ne öğreneceğim?

Modern Clipboard API'yi kullanarak panoya kopyalama düğmeleri uygulayın ve eski tarayıcılarda sorunsuz bir geri dönüş sağlayın React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

React Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Clipboard API: React'te Kopyalama ve Yapıştırma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu React Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Clipboard API: React'te Kopyalama ve Yapıştırma
  2. React Bileşenlerinde Geolocation API
  3. Notifications API ve İzin Yönetimi
  4. Kaydırmayla Tetiklenen Efektler için IntersectionObserver
← React Academy Sayfasına Dön