useToday
Gece yarısı ve sekme geri geldiğinde güncellenen, hydration uyuşmazlığı oluşturmayan bugünün tarihi.
pnpm dlx shadcn@latest add https://hextaui.com/r/use-today.jsonHook'u ve bağımlı olduğu her şeyi projenize ekler.
Aşağıdaki kodu kopyalayıp projenize yapıştırın.
hooks/use-today.ts İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Bir bileşen bugünü vurgulamak, geçmiş günleri devre dışı bırakmak veya bir son tarihe geri saymak gibi geçerli tarihe bağlı olduğunda başvurun.
Tarihi işleme sırasında okumak iki şekilde bozulur:
- Hydration uyuşmazlıkları. Sunucu kendi saat diliminde, belki saatler önce işler. Gece yarısına yakın sunucu ve tarayıcı günü konusunda anlaşamaz ve React sunucu HTML'ini atar.
- Bayat tarihler. Gece boyunca açık bırakılan bir sekme, başka bir şey onu yeniden işleyene kadar dünü bugün olarak göstermeye devam eder.
useToday sunucuda ve hydration sırasında undefined, ardından yerel tarihi döndürür. Ayrıca gece yarısı ve sekme yeniden görünür olduğunda yeniden işler, çünkü arka plan sekmelerindeki zamanlayıcılar duraklatılabilir ve gece yarısını kaçırabilir.
Tarih sınırları
Geçmiş günleri ve 30 günden uzak her şeyi devre dışı bırakın. Bugün bilinene kadar hiçbir şey devre dışı bırakılmaz; böylece sunucu HTML'i ilk istemci işlemesiyle eşleşir.
Dosya ayrıca hook'un yapıldığı parçaları da dışa aktarır. Tarih anahtarları yerel YYYY-MM-DD dizeleridir. Güne göre karşılaştırılır, doğru sıralanır ve React key'leri veya önbellek anahtarları olarak kullanımı güvenlidir. subscribeToday gece yarısı ve sekmeye dönüşte React dışında sizi geri çağırır.
- Döndürülen
Dateyerel saatte gece yarısıdır; bu yüzden onu<veya>ile karşılaştırmak saatleri değil günleri karşılaştırır. - Gün değişene kadar aynı
Datenesnesi geri gelir; bu yüzden effect bağımlılıklarında kullanımı güvenlidir. undefinedişlemesini planlayın. Bir skeleton veya tarihe dayalı sınırlar olmadan işleme, ikisi de çalışır.
| Döndürür | Açıklama |
|---|---|
Date | undefined | Bugünün yerel gece yarısı. Sunucuda ve hydration sırasında undefined. |
| Export | Açıklama |
|---|---|
toDateKey(date) | Yerel YYYY-MM-DD dizesi olarak bir Date. |
fromDateKey(key) | Yerel gece yarısı Date olarak bir YYYY-MM-DD dizesi. |
getTodayKey() | Bugünün tarih anahtarı. |
subscribeToday(callback) | Gece yarısı ve sekme görünür olduğunda geri çağırır. Bir abonelikten çıkma fonksiyonu döndürür. |
Calendar ve onun üzerinden Date picker.