0Pricing
React Academy · Ders

URL Arama Parametrelerinde Durum Yönetimi

Filtreleri, sıralamayı ve sayfalamayı useSearchParams ile URL ile eşitleyin.

URL Arama Parametrelerinde Durum Yönetimi, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 4. 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.

Durum Neden URL'de Saklanır

Filtreler, arama sorguları, sıralama düzenleri ve sayfalama URL'de bulunmalıdır; böylece kullanıcılar aynı görünümü yer işaretlerine ekleyebilir, paylaşabilir ve durumu kaybetmeden bu görünüme geri dönebilir.

useSearchParams Kancası

useSearchParams(), geçerli URLSearchParams örneğini ve bir ayarlayıcı işlevi döndürür. URL sorgu dizesini temel alması dışında useState'e benzer.

import { useSearchParams } from 'react-router-dom';

function ProductList() {
  const [searchParams, setSearchParams] = useSearchParams();
  const query = searchParams.get('q') || '';
  const page = Number(searchParams.get('page') || 1);
  // ...
}

Tek Bir Parametreyi Okuma

Bir değeri okumak için searchParams.get('key') kullanınız. Parametre yoksa null döndürür; bu nedenle bir yedek değer sağlayınız.

const sort = searchParams.get('sort') ?? 'name';
const order = searchParams.get('order') ?? 'asc';

Gezi̇nme Yapmadan Parametre Yazma

Parametreleri değiştirmek için setSearchParams() işlevini yeni bir nesneyle veya güncelleyici işleviyle çağırınız. React Router, tam bir gezinme gerçekleştirmeden URL'yi günceller ve yeniden görüntüler.

function SortButton({ field }) {
  const [searchParams, setSearchParams] = useSearchParams();
  const handleClick = () => {
    setSearchParams(prev => {
      prev.set('sort', field);
      prev.set('page', '1');
      return prev;
    });
  };
  return <button onClick={handleClick}>Sort by {field}</button>;
}

Güncelleme Sırasında Diğer Parametreleri Koruma

Yalnızca değiştirmek istediğiniz parametreleri değiştirip diğerlerini korumak için setSearchParams işlevinin güncelleyici biçimini kullanınız.

setSearchParams(prev => {
  prev.set('q', newQuery);
  // 'sort' and 'page' are unchanged
  return prev;
});

Bir Girdiyi Arama Parametreleriyle Eşitleme

Bir girdinin değerini URL parametresinden denetleyiniz ve ikisini eşzamanlı tutmak için değişiklik olduğunda URL'yi güncelleyiniz.

function SearchBar() {
  const [params, setParams] = useSearchParams();
  const q = params.get('q') || '';
  return (
    <input
      value={q}
      onChange={e => setParams(prev => {
        prev.set('q', e.target.value);
        prev.set('page', '1');
        return prev;
      })}
    />
  );
}

Arama Parametrelerinde Boole Bayrakları

Açık bir panel veya etkin filtreler gibi boole kullanıcı arayüzü durumlarını belirtmek için bir parametrenin varlığını ya da yokluğunu (veya '1'/'0' dizesini) kullanınız.

const showFilters = searchParams.has('filters');

const toggleFilters = () => {
  setSearchParams(prev => {
    if (prev.has('filters')) prev.delete('filters');
    else prev.set('filters', '1');
    return prev;
  });
};

Arama Parametrelerinde Dizi Değerleri

URLSearchParams, aynı anahtar için birden çok değeri destekler. Bunları dizi olarak okumak için getAll('key') kullanınız.

// URL: /products?tag=react&tag=typescript
const tags = searchParams.getAll('tag'); // ['react', 'typescript']

// Setting multiple values:
const newParams = new URLSearchParams();
selectedTags.forEach(t => newParams.append('tag', t));
setSearchParams(newParams);

Geçmişi Değiştirme ve Yeni Kayıt Ekleme

Filtre değişikliklerinin tarayıcı geçmişi yığınını doldurmasını önlemek için setSearchParams işlevine ikinci bağımsız değişken olarak { replace: true } aktarınız.

setSearchParams(prev => { prev.set('q', val); return prev; }, { replace: true });

Parametrelerden Durum Türetme

Ayrıştırılmış tam sayılar veya doğrulanmış numaralandırmalar gibi türetilmiş değerleri güvenle kullanmak için bileşeninizin en üstünde ham dize parametrelerinden hesaplayınız.

const rawPage = searchParams.get('page');
const page = Math.max(1, parseInt(rawPage || '1', 10));

const rawSort = searchParams.get('sort');
const sort = ['name', 'price', 'date'].includes(rawSort) ? rawSort : 'name';

Arama Parametreleriyle Bağlantı Kurma

Belirli sorgu parametreleri ayarlanmış bir URL'ye gitmek için bir Link veya to nesnesi üzerindeki search özelliğini kullanınız.

<Link to={{ pathname: '/products', search: '?sort=price&order=asc' }}>
  Sort by Price
</Link>

Kısa Kontrol

?tag=react&tag=ts gibi tekrarlanan bir anahtarın tüm değerlerini URLSearchParams'ın hangi yöntemi okur?

Özet

useSearchParams(), bileşen durumunu URL sorgu dizesiyle eşitler. Diğer parametreleri korumak için güncelleyici biçimini, geçmişin gereksiz büyümesini önlemek için { replace: true } seçeneğini ve dizi değerli parametreler için getAll() işlevini kullanınız.

Sıkça Sorulan Sorular

“URL Arama Parametrelerinde Durum Yönetimi” dersi ücretsiz mi?

Evet — “URL Arama Parametrelerinde Durum Yönetimi” 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.

“URL Arama Parametrelerinde Durum Yönetimi” dersinde ne öğreneceğim?

Filtreleri, sıralamayı ve sayfalamayı useSearchParams ile URL ile eşitleyin. 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 4. dersidir.

“URL Arama Parametrelerinde Durum Yönetimi” 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. İç İçe Rotalar ve Outlet Düzenleri
  2. Yükleyiciler ve Eylemler (Veri Yönlendirici API'si)
  3. Korumalı Rotalar ve Kimlik Doğrulama Koruyucuları
  4. URL Arama Parametrelerinde Durum Yönetimi
← React Academy Sayfasına Dön