React bileşenleri iyi uygulamaları teşvik eder ancak çok kısıtlayıcı olabilirler. Kalıbı nasıl kıracağınızı öğrenin.

Temel Çıkarımlar

  • React Portalları, bir bileşenin içeriğini ana bileşen hiyerarşisinin dışında oluşturmanıza olanak tanıyarak onu modal'ler ve katmanlar gibi kullanıcı arayüzü öğeleri için kullanışlı hale getirir.
  • Portallar; modeller, üçüncü taraf entegrasyonları, içerik menüleri ve araç ipuçları gibi çeşitli senaryolarda kullanılabilir ve farklı DOM konumlarında esnek işlemeye olanak tanır.
  • React Portallarını kullanarak UI endişelerini ana bileşen ağacından ayırabilir, kod bakımını geliştirebilir ve UI öğelerini katmanlamak ve istiflemek için bileşenlerin z-indeksini kolayca kontrol edebilirsiniz.

Modern web uygulamaları, modeller ve araç ipuçları gibi öğeleri içeren arayüzlere ihtiyaç duyar. Ancak bu kullanıcı arayüzü bileşenleri her zaman mevcut bileşen yapısıyla iyi bir şekilde bütünleşmeyebilir.

React, Portallar adı verilen bir özellik aracılığıyla bu soruna çözüm sunuyor.

instagram viewer

React Portalları Nedir?

React Portalları, bir bileşenin içeriğini ana bileşen hiyerarşisinin dışında işlemenin bir yolunu sağlar. Başka bir deyişle, bir bileşenin çıktısını geçerli bileşenin çocuğu olmayan farklı bir DOM öğesine dönüştürmenize olanak tanırlar.

Bu özellik, DOM'da modal'lar veya katmanlar gibi daha yüksek düzeyde işlenmesi gereken kullanıcı arayüzü bileşenleriyle çalışırken kullanışlıdır.

React Portallarının Kullanım Alanları

React Portalları çeşitli senaryolarda kullanışlıdır:

  • Modallar ve kaplamalar. Kalıcı diyalogları veya katmanları görüntülemeniz gerektiğinde bunları DOM'un en üst düzeyinde işleyin. Bu, ebeveynlerinin stillerinin veya düzeninin onları sınırlamamasını sağlar.
  • Üçüncü taraf entegrasyonları. Belirli DOM konumlarında görüntü oluşturmayı öngören üçüncü taraf kitaplıkları entegre ederken.
  • Bağlam menüleri. Görünüm penceresine veya belirli bir DOM öğesine göre konumlandırmanız gereken, kullanıcı etkileşimlerine yanıt veren bağlam menüleri oluşturma.
  • Araç ipuçları ve açılır pencereler. Bileşen ağacındaki konumlarına bakılmaksızın diğer bileşenlerin üzerinde görünmesi gereken araç ipuçlarını veya açılır pencereleri oluştururken.

React Portalları Nasıl Çalışır?

Geleneksel olarak, React'ta bir bileşeni oluşturduğunuzda çıktısını ana bileşenin DOM düğümüne eklersiniz. Bu, çoğu senaryoda işe yarar ancak içeriği üst hiyerarşinin dışında oluşturmanız gerektiğinde sınırlayıcı hale gelir.

Kalıcı bir diyalog oluşturduğunuzu varsayalım. Varsayılan olarak, modun içeriğini ana bileşenin DOM düğümü.

Bu, stil çakışmalarına ve diğer istenmeyen davranışlara yol açabilir, çünkü modun içeriği, ana bileşenlerinin stillerini ve kısıtlamalarını devralır.

React Portalları, bir bileşenin çıktısının oluşturulacağı hedef DOM öğesini belirtmenize izin vererek bu sınırlamayı giderir.

Bu, herhangi bir UI öğesini üst öğenin DOM hiyerarşisinin dışında oluşturabileceğiniz ve üst öğenin stillerinin ve düzeninin kısıtlamalarından kurtulabileceğiniz anlamına gelir.

React Portalları Nasıl Kullanılır?

Modallar, React Portallarını ne zaman kullanabileceğinize dair mükemmel bir örnektir. Bu örnek kod yordamı açıklamaktadır.

Temel React Uygulaması Kurma

Bir portal oluşturmadan önce temel bir React uygulaması kurulumuna sahip olduğunuzdan emin olun. Kullanabilirsiniz React Uygulaması Oluştur gibi araçlar Bir projeyi hızlı bir şekilde iskele haline getirmek için.

Modallar için bir Portal Oluşturun

Bir portal oluşturmak için şunu kullanın: ReactDOM.createPortal() işlev. İki argüman gerekir: oluşturmak istediğiniz içerik ve bunun oluşturulacağı DOM düğümüne yapılan referans.

Bu örnekte Modal bileşeni alt öğelerini bir portal kullanarak işler. İçerik DOM öğesinde 'kök' kimliğiyle görünecektir.

// Modal.js
import ReactDOM from"react-dom";

const Modal = ({ children }) => {
const modalRoot = document.getElementById("root");
return ReactDOM.createPortal(children, modalRoot);
};

exportdefault Modal;

Belirli bir Modal'ın içeriğini belirli bir bileşende tanımlayabilirsiniz. Örneğin, bu ModalContent bileşeni bir paragraf ve bir Kapalı düğme:

// Create a Modal Content Component
const ModalContent = ({ onClose }) => (
"modal">
"modal-content">

This is a modal content.</p>

exportdefault ModalContent;

Daha sonra Modal'ı App.js'de tanımlanan bir düğmeyi tıklatarak açabilirsiniz:

// Usage in App component
import { useState } from"react";
import Modal from"./Modal";
import ModalContent from"./ModalContent";
import"./App.css";

const App = () => {
const [isModalOpen, setIsModalOpen] = useState(false);

const toggleModal = () => {
setIsModalOpen(!isModalOpen);
};

return (


exportdefault App;

Bu örnekte Modal bileşeni, içeriğini ana bileşen hiyerarşisinden ayrı bir portal kullanarak işler.

Gerçek Dünyadan Örnekler

React Portalları çeşitli günlük durumlarda faydalıdır.

  • Bildirim sistemi: Ne zaman bildirim sistemi oluşturmageçerli bileşen nerede olursa olsun, genellikle mesajların ekranın üst kısmında görünmesini istersiniz.
  • Bağlam menüsü: Bağlam menüleri, DOM hiyerarşisinde nerede olduğuna bakılmaksızın kullanıcının tıkladığı yere yakın bir yerde açılmalıdır.
  • Üçüncü taraf entegrasyonu: Üçüncü taraf kitaplıkların genellikle DOM'un rastgele bölümlerini hedeflemesi gerekir.

Portal Kullanımına İlişkin En İyi Uygulamalar

React Portallarından en iyi şekilde yararlanmak için şu ipuçlarını izleyin:

  • Doğru durumları seçin: Portallar esnektir ancak her şeyin onlara ihtiyacı yoktur. Düzenli işleme sorunlara veya çakışmalara neden olduğunda portalları kullanın.
  • Portal içeriğini ayrı tutun: İçeriği portallar aracılığıyla oluşturduğunuzda, içeriğin bağımsız olduğundan emin olun. Ebeveyn stillerine veya bağlama bağlı olmamalıdır.
  • Olayları ve eylemleri yönetin: Portallarda, bağımsız içerik nedeniyle olaylar biraz farklı çalışır. Olay yayılımını ve eylemlerini doğru şekilde ele alın.

React Portallarının Faydaları

React Portalları, karmaşık kullanıcı arayüzlerinin gelişimini artırabilecek çeşitli avantajlar sunar. Onlar:

  • Kullanıcı arayüzü endişelerinin ana bileşen ağacından ayrılmasına yardımcı olarak kodun sürdürülebilirliğini ve okunabilirliğini artırın.
  • Üst bileşenlerinin dışında görüntülenmesi gereken bileşenler için esneklik sağlayın.
  • Kullanıcı arayüzünün geri kalanından ayrı modeller ve kaplamalar oluşturmayı kolaylaştırın.
  • Bileşenlerin z-indeksini kolayca kontrol etmenize olanak tanıyarak, kullanıcı arayüzü öğelerinizi düzgün bir şekilde katmanlandırabilmenizi ve istifleyebilmenizi sağlar.

Potansiyel Tuzaklar ve Hususlar

React Portalları faydalı olsa da şunları aklınızda bulundurun:

  • CSS sorunları: Portallar, içeriği ana bileşenlerin dışına koydukları için beklenmedik CSS tarzı davranışlara neden olabilir. Global stilleri kullanın veya CSS kapsamını dikkatli bir şekilde yönetin.
  • Erişilebilirlik: İçerik oluşturmak için portalları kullandığınızda, klavyede gezinme ve ekran okuyucu uyumluluğu gibi erişilebilirlik özelliklerini olduğu gibi korumayı unutmayın.
  • Sunucu tarafı oluşturma: Portallar, sunucu tarafıyla iyi uyum sağlayamayabilir sunucu tarafı oluşturma (SSR). SSR kurulumlarında portal kullanmanın etkilerini ve sınırlamalarını anlayın.

Kullanıcı Arayüzünü Normun Ötesine Taşımak

React Portalları, içeriğin ana bileşenlerin sınırlarının ötesinde görünmesini gerektiren karmaşık UI durumlarını ele almak için güçlü bir çözüm sunar.

Portalları kavrayarak ve en iyi uygulamaları kullanarak, sorunlardan kaçınırken daha uyarlanabilir ve bakımı daha kolay kullanıcı arayüzleri oluşturabilirsiniz.

İster modeller oluşturuyor olun ister üçüncü taraf kütüphaneleri getiriyor olun, React Portalları zorlu kullanıcı arayüzü ihtiyaçlarını karşılamak için güçlü bir yanıt sağlar.