


Menggunakan Async/Await dalam Fungsi Render React: Pendekatan Alternatif
Pengaturcaraan tak segerak sering ditemui dalam aplikasi React, terutamanya apabila berurusan dengan luaran sumber data. Walau bagaimanapun, menggunakan async dan menunggu terus dalam fungsi pemaparan React boleh membawa kepada hasil yang tidak dijangka.
Untuk menggabungkan panggilan tak segerak dengan berkesan dalam React, pendekatan biasa ialah menggunakan teknik pengurusan keadaan. Ini melibatkan pengambilan data dalam kaedah kitaran hayat yang berasingan, seperti componentDidMount atau menggunakan cangkuk seperti useEffect dan mengemas kini keadaan sebaik sahaja data tersedia.
Pertimbangkan contoh berikut:
<code class="javascript">class ParentThatFetches extends React.Component { constructor() { this.state = { data: null }; } componentDidMount() { fetch("/some/async/data") .then(resp => resp.json()) .then(data => this.setState({ data })); } render() { return this.state.data ? ( <child data="{this.state.data}"></child> ) : null; } } const Child = ({ data }) => ( <tr key="{index}"> {data.map((x, i) => ( <td key="{i}">{x}</td> ))} </tr> );</code>
Dalam pendekatan ini, komponen ParentThatFetches mengambil data secara tidak segerak dan mengemas kini keadaannya dengan sewajarnya. Setelah data tersedia, ia memaparkan komponen Kanak-kanak, yang memaparkan data.
Pendekatan Alternatif: Komponen Bahagian Pelayan
Komponen Pelayan React, diperkenalkan dalam React 18 , sediakan pendekatan lain untuk mengendalikan data tak segerak dalam aplikasi React. Tidak seperti model pemaparan sisi klien tradisional, Komponen Pelayan React dipaparkan pada pelayan, membolehkan anda mengambil dan memproses data sebelum HTML dihantar kepada pelanggan.
Berikut ialah contoh dikemas kini yang memanfaatkan Komponen Pelayan React:
<code class="javascript">import Geocode from "react-geocode"; import _ from "lodash-es"; const getAddressData = async (getCompanyUserRidesData = []) => Promise.all( getCompanyUserRidesData.map(async (userRides) => { const addr = await Geocode.fromLatLng(22.685131, 75.873468); const address = addr.results[0].formatted_address; const email = _.get(userRides, "driverId.email", ""); const mobile = _.get(userRides, "driverId.mobile", ""); return { address, email, mobile }; }) ); async function GeoServerComponent({ phase, getCompanyUserRidesData }) { const data = await getAddressData(getCompanyUserRidesData); return ( <table> <tbody> {data.map(({ address, email, mobile }, index) => ( <tr key="{index}"> <td>{address}</td> <td>Goa</td> <td>asdsad</td> <td>{email}</td> <td>{mobile}</td> </tr> ))} </tbody> </table> ); }</code>
Dalam contoh ini, fungsi getAddressData mengambil alamat secara tidak segerak pada pelayan. Fungsi GeoServerComponent kemudiannya menerima alamat sebagai prop dan menjadikan HTML yang diperlukan pada pelayan. Pendekatan ini memastikan data sedia sebelum HTML dihantar kepada klien, menyelesaikan isu yang dihadapi apabila menggunakan async dan menunggu terus dalam fungsi pemaparan.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Panggilan Asynchronous dengan Berkesan dalam Fungsi React Render?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Penjelasan terperinci mengenai kaedah penggantian rentetan javascript dan Soalan Lazim Artikel ini akan meneroka dua cara untuk menggantikan watak rentetan dalam JavaScript: Kod JavaScript dalaman dan HTML dalaman untuk laman web. Ganti rentetan di dalam kod JavaScript Cara yang paling langsung ialah menggunakan kaedah pengganti (): str = str.replace ("cari", "ganti"); Kaedah ini hanya menggantikan perlawanan pertama. Untuk menggantikan semua perlawanan, gunakan ungkapan biasa dan tambahkan bendera global g: str = str.replace (/fi

Fungsi JavaScript mudah digunakan untuk memeriksa sama ada tarikh sah. fungsi isvaliddate (s) { var bits = s.split ('/'); var d = tarikh baru (bit [2] '/' bits [1] '/' bits [0]); kembali !! (d && (d.getmonth () 1) == bit [1] && d.getdate () == nombor (bit [0])); } // ujian var

Artikel ini membincangkan cara menggunakan jQuery untuk mendapatkan dan menetapkan margin dalaman dan nilai margin elemen DOM, terutama lokasi tertentu margin luar dan margin dalaman elemen. Walaupun ada kemungkinan untuk menetapkan margin dalaman dan luar elemen menggunakan CSS, nilai yang tepat boleh menjadi rumit. // Sediakan $ ("div.header"). css ("margin", "10px"); $ ("div.header"). css ("padding", "10px"); Anda mungkin menganggap kod ini

Artikel ini meneroka sepuluh tab jQuery yang luar biasa dan akordion. Perbezaan utama antara tab dan akordion terletak pada bagaimana panel kandungan mereka dipaparkan dan tersembunyi. Mari kita menyelidiki sepuluh contoh ini. Artikel Berkaitan: 10 JQuery Tab Plugin

Temui sepuluh plugin jQuery yang luar biasa untuk meningkatkan dinamisme dan daya tarikan visual laman web anda! Koleksi ini menawarkan pelbagai fungsi, dari animasi imej ke galeri interaktif. Mari kita meneroka alat yang berkuasa ini: Posting Berkaitan: 1

HTTP-CONSOLE adalah modul nod yang memberi anda antara muka baris arahan untuk melaksanakan arahan HTTP. Ia bagus untuk menyahpepijat dan melihat apa yang sedang berlaku dengan permintaan HTTP anda, tanpa mengira sama ada mereka dibuat terhadap pelayan web, Serv Web

Tutorial ini menunjukkan kepada anda bagaimana untuk mengintegrasikan API carian Google tersuai ke dalam blog atau laman web anda, menawarkan pengalaman carian yang lebih halus daripada fungsi carian tema WordPress standard. Ia menghairankan mudah! Anda akan dapat menyekat carian ke y

Coretan kod jQuery berikut boleh digunakan untuk menambah bar skrol apabila kandungan div melebihi kawasan elemen kontena. (Tiada demonstrasi, sila salin terus ke Firebug) // d = dokumen // w = tetingkap // $ = jQuery var contentArea = $ (ini), Wintop = contentArea.scrollTop (), docheight = $ (d) .height (), winheight = $ (w) .height (), Divheight = $ ('#c


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Dreamweaver Mac版
Alat pembangunan web visual
