Minden CRUD alkalmazásnak szilárd adatbázisra van szüksége. Tudja meg, hogyan tudja a Supabase betölteni ezt a szerepet az Ön React alkalmazásaiban.
A React forradalmasította azt a módot, ahogyan a fejlesztők felhasználói felületeket készítenek webes alkalmazásokhoz. Összetevő alapú architektúrája és deklaratív szintaxisa hatékony alapot biztosít az interaktív és dinamikus felhasználói élmények létrehozásához.
React fejlesztőként a CRUD (Create, Read, Update, Delete) műveletek megvalósításának elsajátítása az első döntő lépés a robusztus és hatékony webes megoldások kiépítése felé.
Tanulja meg, hogyan készíthet egyszerű React CRUD alkalmazást a Supabase Cloud Storage háttérmegoldásaként.
Supabase Backend-as-a-Service Solution
Backend-as-a-Service (BaaS) szolgáltatókA Supabase-hez hasonlóan kényelmes alternatívát kínálnak egy teljes körű háttérszolgáltatás létrehozására a semmiből a webes alkalmazások számára. Ideális esetben ezek a megoldások az előre beépített háttérszolgáltatások széles skáláját kínálják, amelyek elengedhetetlenek a React webalkalmazások hatékony háttérrendszerének beállításához.
A BaaS segítségével olyan funkciókat használhat, mint az adattárolás, hitelesítési rendszerek, valós idejű előfizetések és még sok más anélkül, hogy ezeket a szolgáltatásokat önállóan kellene fejleszteni és karbantartani.
A BaaS megoldások, például a Supabase projektbe való integrálásával jelentősen csökkentheti a fejlesztési és szállítási időt, miközben továbbra is élvezheti a robusztus háttérszolgáltatások előnyeit.
Supabase Cloud Storage Project beállítása
A kezdéshez menjen a következőhöz Supabase honlapja, és regisztráljon egy fiókot.
- Miután regisztrált egy fiókot, jelentkezzen be fiókjába Irányítópult oldalon.
- Kattintson a Új projekt gomb.
- Töltse ki a projekt adatait, és kattintson a gombra Új projekt létrehozása.
- A projekt beállítása után válassza ki és kattintson a gombra SQL szerkesztő funkció gomb a bal oldali funkciók panelen.
- Futtassa az alábbi SQL utasítást a SQL szerkesztő demótábla létrehozásához. Ez fogja tárolni azokat az adatokat, amelyeket a React alkalmazással fog használni.
teremtasztal Termékek (
id bigint alapértelmezés szerint identitás elsődleges kulcsaként generálva,
név szövege,
leírás szövege
);
React CRUD alkalmazás beállítása
Hozzon létre egy React alkalmazást, navigáljon a gyökérkönyvtárba, és hozzon létre egy új fájlt, .env, néhány környezeti változó beállításához. Irány a Supabase beállítások oldalt, nyissa meg a API szakaszt, és másolja át az értékeket projekt URL-je és nyilvános anon kulcs. Illessze be ezeket az env fájlba:
REACT_APP_SUPABASE_URL = projekt URL
REACT_APP_SUPABASE_ANON_KEY = nyilvános anon kulcs
Ezután futtassa ezt a parancsot a Supabase JavaScript-könyvtárának telepítéséhez a React projektben:
npm install @supabase/supabase-js
Konfigurálja a Supabase klienst
Ban,-ben src könyvtárat, hozzon létre egy újat utils/SupabaseClient.js fájl és az alábbi kód:
import {Client létrehozása } tól től"@supabase/supabase-js";
const supabaseURL = process.env. REACT_APP_SUPABASE_URL;
const supabaseAnonKey = process.env. REACT_APP_SUPABASE_ANON_KEY;
exportconst supabase = CreateClient (supabaseURL, supabaseAnonKey);
Ez a kód Supabase-ügyfélpéldányt hoz létre a Supabase URL-cím és egy nyilvános anon kulcs megadásával, lehetővé téve a React alkalmazás számára, hogy kommunikáljon a Supabase API-kkal és CRUD-műveleteket hajtson végre.
A projekt kódját itt találja meg GitHub adattár.
Hajtsa végre a CRUD műveleteket
Most, hogy sikeresen beállította a Supabase felhőtárhelyét és a React projektjét, hajtsa végre a CRUD műveleteket a React alkalmazásban.
1. Adatok hozzáadása az adatbázishoz
Nyissa meg a src/App.js fájlt, törölje a React kódot, és adja hozzá a következőket:
import { useState, useEffect } tól től'reagál';
import ProductCard tól től"./components/ProductCard";
import { supabase } tól től'./utils/SupabaseClient';
import'./App.css';exportalapértelmezettfunkcióApp() {
const [name, setName] = useState('');
const [description, setDescription] = useState('');asyncfunkcióaddProduct() {
próbáld ki {
const { adat, hiba } = várja supabázis
.tól től('Termékek')
.insert({
név: név,
leírás: leírás
})
.egyetlen();
ha (hiba) dobás hiba;
ablak.location.reload();
} fogás (hiba) {
riasztás (error.message);
}
}
Ez a kód meghatároz egy addProduct kezelő funkció, amely aszinkron módon beszúr egy új rekordot a Termékek táblázat a felhőadatbázisban. Ha a beszúrási művelet sikeres, az oldal újra betöltődik, hogy tükrözze a frissített terméklistát.
2. Adatok olvasása a felhőadatbázisból
Határozzon meg egy kezelő függvényt a tárolt adatok adatbázisból való lekéréséhez.
const [termékek, setProducts] = useState([]);
asyncfunkciógetProducts() {
próbáld ki {
const { adat, hiba } = várja supabázis
.tól től('Termékek')
.select('*')
.határ(10);ha (hiba) dobás hiba;
ha (adat != nulla) {
setProducts (adatok);
}
} fogás (hiba) {
riasztás (error.message);
}
}
useEffect(() => {
getProducts();
}, []);
Ez a kód aszinkron módon lekéri az adatokat az adatbázisból. A lekérési lekérdezés lekéri az összes adatot a termékek táblájából, az eredményeket legfeljebb 10 rekordra korlátozva, és frissíti a Termékek' állapotát a visszakeresett adatokkal.
A useEffectReagálás horog fut a getProducts funkció, amikor az alkatrész fel van szerelve. Ez biztosítja a termékek adatainak lekérését és megjelenítését az összetevő kezdeti megjelenítésekor. Végül adja hozzá azt a kódot, amely a bemeneti JSX elemeket jeleníti meg a böngészőben, hogy a felhasználók hozzáadhassanak termékeket egy Supabase adatbázishoz, és megjelenítsék az adatbázisból lekért meglévő termékeket.
Visszatérés (
<> "fejléc-tároló">Bolti termékek</h3>
</div>
</header>Termékadatok hozzáadása a Supabase adatbázishoz</h3>
"terméktároló létrehozása">
Aktuális termékek ban ben az Adatbázis</h3>
"terméklista-tároló">
{products.map((termék) => (
</div>
))}
</div>
</>
);
}
A lekért adatok a termékek tömbje kellékként kerül átadásra, és dinamikusan jelenítik meg a ProductCard komponens segítségével térkép funkció.
3. Meglévő adatok frissítése és törlése az adatbázisban
Újat csinálni összetevők/ProductCard.js fájl a /src Könyvtár. A kezelő függvények meghatározása előtt nézzük meg, milyen állapotokat és JSX elemeket fog implementálni ebben a komponensben.
import { useState } tól től'reagál';
import { supabase } tól től"../utils/SupabaseClient";
import"./productcard.styles.css";exportalapértelmezettfunkcióProductCard(kellékek) {
const termék = kellékek.termék;
const [szerkesztés, setEditing] = useState(hamis);
const [név, setName] = useState (termék.név);
const [leírás, setDescription] = useState (termék.leírás);
Visszatérés (
"termékkártya">
{szerkesztés hamis? ({product.name}</h5>
{product.description}/p>
Ez a kód újrafelhasználható ProductCard komponens, amely megjeleníti a termékinformációkat, és lehetővé teszi a termékadatok szerkesztését és frissítését a Supabase adatbázisban.
A komponens kap a termék objektumot kellékként, amely információkat tartalmaz a megjelenítendő termékről, és a szerkesztési állapottól függően eltérő tartalmú kártya div-et jelenít meg.
Kezdetben, mivel a szerkesztés állapotra van állítva hamis, megjeleníti a termék nevét, leírását és gombokat a termék törléséhez vagy szerkesztéséhez. Amikor azonban a felhasználó rákattint a szerkeszteni gombot, a szerkesztési állapot be van állítva igaz, ez előre kitöltve jeleníti meg a beviteli mezőket az aktuális értékekkel, így a felhasználó szerkesztheti és frissítheti a termék nevét és leírását az adatbázisban. Most határozza meg a frissítés kezelő funkció. Adja hozzá ezt a kódot az államok nyilatkozata alá a összetevők/ProductCard.js fájlt.
asyncfunkciótermék frissítése() {
próbáld ki {
const { adat, hiba } = várja supabázis
.tól től('Termékek')
.update({
név: név,
leírás: leírás
})
.eq("azonosító", termék azonosító);
ha (hiba) dobás hiba;
ablak.location.reload();
} fogás (hiba) {
riasztás (error.message);
}
}
Ez a kód egy aszinkron kezelő függvényt határoz meg, amely frissíti a termék adatait a Supabase adatbázisban. Használja a supabázis példány a frissítési művelet végrehajtásához a tábla, az új értékek és egy feltétel megadásával a termék azonosítója alapján, és a sikeres frissítés után újratölti az ablakot. Végül határozza meg a Töröl kezelő funkció.
asyncfunkciótörölje Termék() {
próbáld ki {
const { adat, hiba } = várja supabázis
.tól től('Termékek')
.töröl()
.eq("azonosító", termék azonosító);
ha (hiba) dobás hiba;
ablak.location.reload();
} fogás (hiba) {
riasztás (error.message);
}
}
Használja a Supabase-t az egyszerűsített háttérszolgáltatásokhoz
A Supabase kényelmes módot kínál a háttérszolgáltatások egyszerűsítésére közvetlenül az ügyféloldalról, így nincs szükség összetett háttérkód írására. Az adatkezelésen kívül számos háttérszolgáltatást, például biztonságos hitelesítési rendszert is támogat.
Most, hogy megismerte a Supabase és a React integrációját, folytassa és fedezze fel, hogyan integrálhatja azt más kliensoldali keretrendszerekkel, és fedezze fel, hogyan javíthatja a fejlesztési tapasztalatait a különböző területeken platformok.