Semua komponen

MotionStream

Teks mengalir yang ditampilkan dengan tempo stabil dan menyusul saat ada lonjakan.

WebReact NativeAngka dan teks

Coba

Menyiapkan contoh…

Penggunaan terpendek

Answer.jsx
<MotionStream text={answerSoFar} initial />

<MotionStream text={answerSoFar}>
  {visible => <Markdown>{visible}</Markdown>}
</MotionStream>

Yang ditanganinya untuk Anda

  • Lonjakan menjadi bacaan: teks ditampilkan speed karakter per detik, bukan per potongan.
  • Tumpukan antrean mempercepat tampilan agar terlihat dalam sekitar catchUp milidetik.
  • Emoji, bendera, dan tanda gabung tidak pernah terpecah, dan emoji yang baru diterima separuh menunggu sisanya.
  • Jawaban yang ditulis ulang melanjutkan dari awal yang sama, bukan mulai dari nol.
  • Karakter yang ditampilkan langsung masuk ke halaman; React hanya merender beberapa kali per detik.

Gunakan untuk

  • Jawaban asisten dalam obrolan.
  • Log build atau deploy.
  • Teks terjemahan langsung.

Props

PropTipeBawaanDeskripsi
textstring—wajibTeks sejauh ini. Teks yang bertambah ditampilkan dengan tempo stabil; teks yang ditulis ulang melanjutkan dari awal yang sama.
speednumber90Laju tampilan dasar dalam karakter per detik.
catchUpnumber900Tumpukan antrean ditampilkan dalam sekitar sekian milidetik dengan mempercepat.
initialbooleanfalseTampilkan perlahan juga teks yang ada saat mount (jika tidak, langsung tampil).
effect'fade' | 'none''fade'fade memunculkan karakter baru perlahan; none menampilkannya langsung.
children(visible: string) => ReactNodeFungsi yang menerima teks bertempo, misalnya untuk merender Markdown.
aselement'span'Elemen yang dirender.
onMotionComplete(text) => voidBerjalan setiap kali tampilan menyusul text.

Semua props lain diteruskan ke elemen yang dirender, jadi className, style, dan event handler bekerja seperti biasa.

Web dan React Native

Di web, karakter baru muncul perlahan (effect="fade") dan dilebur ke teks biasa yang bisa dipilih. Child berupa fungsi menerima string bertempo untuk Markdown, paling sering setiap dua frame. Di tab tersembunyi semuanya tampil sekaligus.

Di React Native, teksnya adalah Text sungguhan dan muncul tanpa efek pudar.

Dipakai di contoh-contoh ini

Cari

Ketik untuk mencari dokumentasi.