2016-04-08 21 views
11

gibi <head> etiketleri yönetmek bazı kütüphaneler vardır: Rewind:Başlık, meta etiketler, vb. Nasıl yönetilir? İçinde sunucu oluşturma + akış ile tepki var mı?

react-helmet

react-document-title

react-doc-meta

Ama bütün bu kütüphaneler sunucu render aynı API paylaşır.

İlk bileşen ağacını renderToString() kullanarak oluşturursunuz ve verilerini almak için library.rewind() numaralı telefonu arayın.

Sorun, bileşen dizesini bir dize olarak görüntülemek yerine react-dom-stream kullandığınızda gelir. Akım henüz tüketilmediği için rewind yapamazsınız ve olduğu zaman, çok geç.

Burada nasıl bir yaklaşım uygulanmalı?

cevap

0

Maalesef, meta etiketlerin doğru şekilde oluşturulmasına ilişkin genel gereksinimler, her bir meta etiketin içeriğinin ne olacağını doğru bir şekilde tanımlamak için öncelikle birincil içeriğinizi kullanmanız gerektiği anlamına gelir. Gördüğünüz bu konu React ile tam olarak ilgili değildir, ancak daha çok performans ve içerik etiketleme doğruluğu arasında bir denge kurmak zorunda kalmanızdır.

İlkel bir çözüm, istemciye gönderilmeden önce (bu durumda tarayıcı), işlemciden sonra HTML bloğunun üstüne dize değiştirmeleri gibi şeyleri içerecektir, ancak temel olarak akışa verilen bir kaynaktan elde edilen performans kazancını kaldıracaktır. sayfa. Aksi

, sen veya ondan önce ön temel birincil içeriğini alıp akış yanıtın dışında meta üretmek için bir yol uygulamak gerekir - böylece bazı tavizler olacaktır.

Başka bir çözüm, bir dizeye hale metaetiket değişiklikler tüm gücünü gerçekleştirmek ve sonra Vernik gibi bazı önbelleğe alma katmanı veya basitçe REDIS veya Memcached her sayfanın bir anahtar-değer deposu kullanmaktır.

İlgili konular