Iga CRUD-rakendus vajab kindlat andmebaasi. Siit saate teada, kuidas Supabase saab seda rolli teie Reacti rakenduste jaoks täita.

React on muutnud pöörde viisi, kuidas arendajad veebirakenduste jaoks kasutajaliideseid loovad. Selle komponendipõhine arhitektuur ja deklaratiivne süntaks loovad võimsa aluse interaktiivsete ja dünaamiliste kasutajakogemuste loomiseks.

Reacti arendajana on CRUD-i (loomine, lugemine, värskendamine, kustutamine) rakendamise valdamine oluline esimene samm tugevate ja tõhusate veebilahenduste loomise suunas.

Siit saate teada, kuidas luua lihtsat React CRUD rakendust, kasutades taustalahendusena Supabase Cloud Storage.

Supabase'i taustalahendus teenusena

Backend-as-a-Service (BaaS) pakkujad, nagu Supabase, pakuvad mugavat alternatiivi teie veebirakenduste jaoks täieliku taustateenuse loomisele nullist. Ideaalis pakuvad need lahendused laia valikut eelehitatud taustateenuseid, mis on teie Reacti veebirakenduste jaoks tõhusa taustasüsteemi seadistamiseks hädavajalikud.

instagram viewer

BaaS-iga saate kasutada selliseid funktsioone nagu andmete salvestamine, autentimissüsteemid, reaalajas tellimused ja palju muud, ilma et peaksite neid teenuseid iseseisvalt arendama ja hooldama.

Integreerides oma projekti BaaS-i lahendusi nagu Supabase, saate oluliselt vähendada arendus- ja tarneaega, saades samas kasu tugevatest taustateenustest.

Supabase'i pilvesalvestusprojekti seadistamine

Alustamiseks minge aadressile Supabase veebisaitja registreerige konto.

  1. Kui olete konto registreerinud, logige oma kontole sisse armatuurlaud lehel.
  2. Klõpsake nuppu Uus projekt nuppu.
  3. Täitke projekti andmed ja klõpsake nuppu Loo uus projekt.
  4. Kui projekt on seadistatud, valige ja klõpsake nuppu SQL-redaktor funktsiooninupp vasakpoolsel paanil funktsioonide paneelil.
  5. Käivitage allolev SQL-lause rakenduses SQL-redaktor demotabeli loomiseks. See sisaldab andmeid, mida kasutate rakendusega React.
    luualaud tooted (
    id bigint genereeritakse vaikimisi identiteedi primaarvõtmena,
    nime tekst,
    kirjeldav tekst
    );

React CRUD rakenduse seadistamine

Looge rakendus React, navigeerige juurkataloogi ja looge uus fail, .env, et määrata mõned keskkonnamuutujad. Suunduge oma Supabaasi seaded leht, avage API ja kopeerige väärtused projekti URL ja avalik anonvõti. Kleepige need oma env-faili:

REACT_APP_SUPABASE_URL = projekti URL
REACT_APP_SUPABASE_ANON_KEY = avalik anonvõti

Järgmisena käivitage see käsk Supabase'i JavaScripti teegi installimiseks oma Reacti projekti:

npm install @supabase/supabase-js

Supabase'i kliendi konfigureerimine

Aastal src kataloog, looge uus utils/SupabaseClient.js fail ja allolev kood:

importida { CreateClient } alates'@supabase/supabase-js'; 
konst supabaseURL = process.env. REACT_APP_SUPABASE_URL;
konst supabaseAnonKey = process.env. REACT_APP_SUPABASE_ANON_KEY;
eksportidakonst supabase = createClient (supabaseURL, supabaseAnonKey);

See kood loob Supabase'i kliendi eksemplari, pakkudes Supabase'i URL-i ja avaliku anonvõtme, võimaldades rakendusel React suhelda Supabase'i API-dega ja teha CRUD-toiminguid.

Selle projekti koodi leiate siit GitHubi hoidla.

Rakendage CRUD-i toiminguid

Nüüd, kui olete Supabase'i pilvmälu ja oma Reacti projekti edukalt seadistanud, rakendage oma Reacti rakenduses CRUD-i toimingud.

1. Andmete lisamine andmebaasi

Ava src/App.js faili, kustutage reageerimiskood ja lisage järgmine:

importida { useState, useEffect } alates'reageeri';
importida Tootekaart alates'./components/ProductCard';
importida { supabase } alates'./utils/SupabaseClient';
importida'./App.css';

eksportidavaikimisifunktsiooniRakendus() {
konst [nimi, setName] = useState('');
konst [kirjeldus, setDescription] = useState('');

asünkrfunktsioonitoote lisamine() {
proovige {
konst { andmed, viga } = ootama supabaas
.from('tooted')
.insert({
nimi: nimi,
kirjeldus: kirjeldus
})
.single();

kui (viga) viskama viga;
aken.location.reload();
} püüda (viga) {
hoiatus (error.message);
}
}

See kood määratleb an toote lisamine käitleja funktsioon, mis lisab asünkroonselt uue kirje tooted tabel pilvandmebaasis. Kui sisestamise toiming õnnestub, laaditakse leht uuesti, et kajastada värskendatud tooteloendit.

2. Lugege andmeid pilvandmebaasist

Määrake töötleja funktsioon salvestatud andmete toomiseks andmebaasist.

konst [products, setProducts] = useState([]);

asünkrfunktsioonihankigeProducts() {
proovige {
konst { andmed, viga } = ootama supabaas
.from('tooted')
.select('*')
.limit(10);

kui (viga) viskama viga;

kui (andmed != null) {
komplektTooted (andmed);
}
} püüda (viga) {
hoiatus (error.message);
}
}

useEffect(() => {
getProducts();
}, []);

See kood tõmbab andmed andmebaasist asünkroonselt. Tõmbamispäring hangib toodete tabelist kõik andmed, piirates tulemuste maksimaalselt 10 kirjet ja värskendab tooted' olek koos hangitud andmetega.

The useEffectReageerimiskonks jookseb hankigeProducts funktsioon komponendi paigaldamisel. See tagab, et toodete andmed tuuakse ja renderdatakse komponendi esmasel renderdamisel. Lõpuks lisage kood, mis renderdab brauseris JSX-i sisendelemente, et võimaldada kasutajatel lisada tooteid Supabase'i andmebaasi ja kuvada andmebaasist hangitud olemasolevad tooted.

tagasi (
<>

"päis-konteiner">

Kaupluse tooted</h3>
</div>
</header>

Lisa toodete andmed Supabase andmebaasi</h3>

"loo-toote-konteiner">

Praegused tooted sisse andmebaasi</h3>

"tooteloendi konteiner">
{products.map((toode) => (


</div>
))}
</div>
</>
);
}

Toodud andmed failis toodete massiiv edastatakse rekvisiidina ja renderdatakse dünaamiliselt selle sees Tootekaart komponenti kasutades kaart funktsiooni.

3. Värskendage ja kustutage andmebaasis olevaid andmeid

Loo uus komponendid/ProductCard.js faili /src kataloog. Enne töötleja funktsioonide määratlemist vaatame olekuid ja JSX-i elemente, mida selles komponendis rakendate.

importida { useState } alates'reageeri';
importida { supabase } alates'../utils/SupabaseClient';
importida'./productcard.styles.css';

eksportidavaikimisifunktsiooniTootekaart(rekvisiidid) {
konst toode = props.product;
konst [redigeerimine, setEditing] = useState(vale);
konst [nimi, setName] = useState (toote.nimi);
konst [kirjeldus, setDescription] = useState (toode.kirjeldus);

tagasi (

"tootekaart">

{toimetamine vale? (

{product.name}</h5>

{product.description}</p>

See kood loob korduvkasutatava Tootekaart komponent, mis kuvab tooteteavet ja võimaldab Supabase'i andmebaasis toote üksikasju redigeerida ja värskendada.

Komponent saab a toode objekti rekvisiidina, mis sisaldab teavet kuvatava toote kohta ja renderdab redigeerimisolekust lähtuvalt erineva sisuga kaardi div.

Esialgu, kuna toimetamine olek on seatud vale, kuvatakse toote nimi, kirjeldus ja nupud toote kustutamiseks või muutmiseks. Kui kasutaja aga klõpsab muuda nuppu, on redigeerimisolekuks seatud tõsi, see muudab sisestusväljad praeguste väärtustega eeltäidetud, võimaldades kasutajal toote nime ja kirjeldust andmebaasis muuta ja värskendada. Nüüd määratlege värskendada käitleja funktsioon. Lisage see kood osariikide deklaratsiooni alla komponendid/ProductCard.js faili.

asünkrfunktsioonitoote värskendamine() {
proovige {
konst { andmed, viga } = ootama supabaas
.from('tooted')
.update({
nimi: nimi,
kirjeldus: kirjeldus
})
.eq('id', product.id);

kui (viga) viskama viga;
aken.location.reload();
} püüda (viga) {
hoiatus (error.message);
}
}

See kood määratleb asünkroonse töötleja funktsiooni, mis värskendab toote andmeid Supabase'i andmebaasis. See kasutab supabaas eksemplar värskendustoimingu tegemiseks, määrates tabeli, uued väärtused ja toote ID-l põhineva tingimuse ning laadib akna pärast edukat värskendamist uuesti. Lõpuks määratlege Kustuta käitleja funktsioon.

asünkrfunktsiooniKustuta toode() {
proovige {
konst { andmed, viga } = ootama supabaas
.from('tooted')
.delete()
.eq('id', product.id);
kui (viga) viskama viga;
aken.location.reload();
} püüda (viga) {
hoiatus (error.message);
}
}

Kasutage täiustatud taustateenuste jaoks Supabase'i

Supabase pakub mugavat viisi taustateenuste sujuvamaks muutmiseks otse kliendi poolelt, välistades vajaduse keeruka taustakoodi kirjutamise järele. Lisaks andmehaldusele pakub see tuge ka erinevatele taustateenustele, nagu turvaline autentimissüsteem.

Nüüd, kui olete õppinud Supabase'i integreerimisest Reactiga, minge edasi ja uurige, kuidas saate seda integreerida koos teiste kliendipoolsete raamistikega ja avastage, kuidas see võib teie arenduskogemust täiustada erinevates valdkondades platvormid.