React on JavaScripti raamatukogu kasutajaliideste loomiseks, eriti üheleheküljeliste rakenduste (SPA) arendamiseks React projekt. See võimaldab jagada kasutajaliidese väikesteks, korduvkasutatavateks komponentideks. React kasutab virtuaalset DOM-i, et muuta rakendused kiireks ja tõhusaks. State ja props võimaldavad andmeid dünaamiliselt kuvada ja uuendada. Seda kasutatakse tänapäeval paljudes suurtes veebirakendustes.
Mis on komponent?
Komponent on sõltumatu ja taaskasutatav osa kasutajaliidesest, mis tagastab JSX-i Reactis.
Milleks riiki kasutatakse?
State’i kasutatakse komponentide andmete salvestamiseks ja dünaamiliseks uuendamiseks, mis põhjustab kasutajaliidese automaatse uuesti renderdamise.
Miks on React kasulik veebirakenduste loomiseks?
React muudab koodi modulaarseks, kiireks ja lihtsasti hooldatavaks ning võimaldab luua interaktiivseid kasutajaliideseid.
Important terms
JSX – JavaScripti laiendus, mis võimaldab kirjutada Reactis HTML-i sarnast süntaksit.
Komponent – korduvkasutatav kasutajaliidese osa, mis tagastab JSX-i.
Pärast komponentide seadistamist jäävad alles muud failid ja md-failid, need võite lihtsalt alles jätta :3
App.js – see on peamine (juur)komponent. See sisaldab kogu rakenduse loogikat, haldab filmide nimekirja seisundit ja kutsub teisi komponente.
MovieList.js – Selle komponendi ülesanne on võtta vastu filmide nimekiri (props-ina) ja kuvada need. See toimib n-ö konteinerina filmikaartidele.
MovieCard.js – see on väikseim komponent, mis vastutab konkreetse filmi kohta teabe (pilt, pealkiri, aasta) kuvamise eest. Seda kasutatakse korduvalt iga filmi puhul.
SEO ehk Search Engine Optimization aitab otsingumootoritel teie sisu mõista ning kasutajatel teie veebisaiti leida. Õige SEO seadistamine mõjutab otsust, kas ja kuidas kasutajad teie veebilehele jõuavad. SEO seadistamine
Google indekseerimine
Google’i indekseerimine on protsess, mille käigus Google leiab teie lehe, töötleb selle sisu ja lisab selle oma indeksisse. Tõhus SEO aitab tagada, et teie lehed indekseeritakse kiiremini ja korrektselt.
Plugini: Yoast SEO
Yoast SEO plugin toetab SEO seadistamist, võimaldades teil optimeerida pealkirju, meta kirjeldust, võtmesõnu ja sisemist linkimist.
See on tekstifail, mida kasutatakse veebisaidi kõikide URL-ide kirjeldamiseks. See võib sisaldada metadata infot, näiteks viimast uuendamise aega, tähtsust ja keeleversioone.
PRIMARY KEY – on tabeli veerg või veergude rühm, mis identifitseerib ainulaadselt iga tabeli rea. Primary key ei tohi olla dubleeritud, mis tähendab, et sama väärtus ei tohi tabelis esineda rohkem kui üks kord. Tabelis ei tohi olla rohkem kui üks primary key.
Tabelis Lennuk kasutatakse lennukID-d esmase võtmena, et identifitseerida iga lennukit unikaalselt. Igal kirjel peab olema erinev ID – dubleerimised ei ole lubatud.
CREATE TABLE Lennuk (
lennukID INT AUTO_INCREMENT, -- Iga lennuki unikaalne ID
mudel VARCHAR(50), -- Lennuki mudeli nimi
istekohtade_arv INT, -- Istekohtade arv lennukis
PRIMARY KEY (lennukID) -- Põhivõti (primary key)
);
Esmase võtme määratlemise reeglid:
Kaks rida ei tohi omada sama esmase võtme väärtust.
Igal real peab olema esmase võtme väärtus.
Esmase võtme väli ei tohi olla tühi.
Esmase võtme veeru väärtust ei tohi kunagi muuta ega uuendada, kui mõni välisvõti viitab sellele esmasele võtmele.
ALTERNATE KEY – alternatiivne võti
ALTERNATE KEYS on tabeli veerg või veergude rühm, mis identifitseerib tabeli iga rea üheselt. Tabelil võib olla mitu esmavõtme valikut, kuid esmavõtmeks saab määrata ainult ühe. Kõiki võtmeid, mis ei ole esmavõtmed, nimetatakse alternatiivseteks võtmeteks.
LennukAlternate’is on lennukID esmane võti, registreerimis_number aga alternatiivne võti – teine unikaalne identifikaator, mida ei valitud esmaseks.
CANDIDATE KEY SQL-is – on atribuutide kogum, mis identifitseerib tabelis olevad tuplid üheselt. Kandidaatvõti on supervõti, millel ei ole korduvaid atribuute. Esmane võti tuleks valida kandidaatvõtete hulgast. Igal tabelil peab olema vähemalt üks kandidaatvõti. Tabelil võib olla mitu kandidaatvõtit, kuid ainult üks esmane võti.
Kandidaatvõtme omadused:
See peab sisaldama unikaalseid väärtusi.
SQL-is võib kandidaatvõtmel olla mitu atribuuti.
See ei tohi sisaldada nullväärtusi.
See peaks sisaldama minimaalset arvu välju, et tagada unikaalsus.
See peab identifitseerima unikaalselt iga tabeli kirje.
LennukCandidate’is on nii lennukID kui ka registreerimis_number kandidaatvõtmed. Mõlemat võiks kasutada esmase võtmena – me valisime lennukID.
CREATE TABLE LennukCandidate (
lennukID INT AUTO_INCREMENT, -- Võimalik põhivõti
registreerimis_number VARCHAR(20), -- Teine võimalik võti
PRIMARY KEY (lennukID), -- Valitud põhivõtmena
UNIQUE (registreerimis_number) -- Kandidaatvõti (teine võimalus)
);
(see sait oli selle hea näide)
FOREIGN KEY – VÄLISVÕTI
FOREIGN KEY – on veerg, mis loob seose kahe tabeli vahel. Välisvõtme eesmärk on säilitada andmete terviklikkus ja võimaldada navigeerimist kahe erineva entiteedi vahel. See toimib kahe tabeli vahelise ristviitena, kuna viitab teise tabeli põhivõtmele.
Tabelis LennuGraafik on lennukID välisvõtmena, mis viitab tabelile Lennuk. See loob seose, mille kohaselt iga lend peab kuuluma olemasoleva lennuki juurde.
CREATE TABLE LennuGraafik (
lendID INT AUTO_INCREMENT, -- Lennu graafiku ID
lennukID INT, -- Seos Lennuk tabeliga
kuupaev DATE, -- Lennu kuupäev
PRIMARY KEY (lendID), -- Põhivõti
FOREIGN KEY (lennukID) REFERENCES Lennuk(lennukID) -- Võõrvõti
);
Selles DBMS-i näites on meil kaks tabelit: õpetajad ja osakonnad koolis. Siiski pole võimalik näha, milline otsing toimib millises osakonnas.
Selles tabelis saame lisada välisvõtme Deptcode õpetaja nimele ja luua seose kahe tabeli vahel.
Seda kontseptsiooni tuntakse ka kui viite terviklikkust.
COMPOUND KEY – KOMPOSIITVÕTI
COMPOUND KEY – on kaks või enam atribuuti, mis võimaldavad teil kindlalt ära tunda konkreetse kirje. On võimalik, et iga veerg ei ole andmebaasis iseenesest unikaalne. Kuid kombineerituna teise veeruga või veergudega muutub komposiitvõtete kombinatsioon unikaalseks. Komponentvõtme eesmärk andmebaasis on kindlalt identifitseerida iga kirje tabelis.
LennuMeeskondis moodustavad lendID ja pilootID koos liitvõtme. See identifitseerib üheselt, milline piloot on millisele lennule määratud.
CREATE TABLE LennuMeeskond (
lendID INT, -- Lennu ID
pilootID INT, -- Piloodi ID
PRIMARY KEY (lendID, pilootID) -- Liitvõti (compound key)
);
COMPOSITE KEY – KOMPOSIITVÕTI
COMPOSITE KEY – on kahe või enama veeru kombinatsioon, mis identifitseerib tabelis unikaalselt ridu. Veergude kombinatsioon tagab unikaalsuse, kuigi individuaalselt unikaalsust ei tagata. Seetõttu kombineeritakse need, et identifitseerida tabelis unikaalselt kirjed.
Erinevus liitvõtme ja komposiitvõtme vahel on selles, et liitvõtme mis tahes osa võib olla võõrvõti, kuid komposiitvõti võib olla või mitte olla võõrvõtme osa.
CREATE TABLE LennuAjad (
lennukID INT, -- Lennuki ID
kuupaev DATE, -- Lennu kuupäev
PRIMARY KEY (lennukID, kuupaev) -- Koosne (composite) võti
);
LennuAjadis kasutab komposiitvõti kahte veergu: lennukID ja kuupäev. Koos muudavad need iga kirje unikaalseks – üks lennuk võib lennata mitu päeva, kuid mitte kaks korda samal päeval.
SUPER KEY – SUPERVÕTI
SUPER KEY – Ühe või mitme atribuudi (veeru) kogum, mis võimaldab tuplit (kirjet) üheselt identifitseerida, on tuntud kui supervõti. See võib sisaldada lisatunnuseid, mis ei ole unikaalsuse seisukohalt olulised, kuid mis siiski identifitseerivad rea üheselt. Näiteks STUD_NO, (STUD_NO, STUD_NAME) jne.
Supervõti on ühe või mitme võtme rühm, mis identifitseerib tabelis ridade unikaalsuse. See toetab NULL-väärtusi ridades.
Supervõti võib sisaldada lisatunnuseid, mis ei ole unikaalsuse tagamiseks vajalikud.
Näiteks, kui veerg „STUD_NO” suudab üliõpilast unikaalselt identifitseerida, moodustab sellele „SNAME” lisamine ikkagi kehtiva supervõtme, kuigi see ei ole vajalik.
LennukSuperkey’s võimaldavad nii lennukID kui ka registreerimis_number identifitseerida iga kirje unikaalselt. Iga veergude kombinatsioon, mis tagab unikaalsuse, nimetatakse supervõtmeks.
CREATE TABLE LennukSuperkey (
lennukID INT,
registreerimis_number VARCHAR(20),
mudel VARCHAR(50),
PRIMARY KEY (lennukID) -- See on üks võimalik supervõti
);
UNIQUE KEY – UNIKAALNE VÕTI
UNIQUE KEY – tagab, et kõik veeru või veergude rühma väärtused on kogu tabelis unikaalsed. Lisaks, kui unikaalset võtit rakendatakse mitmele veerule korraga, peab iga nende veergude väärtuste kombinatsioon olema kogu tabelis unikaalne.
Unikaalsete võtmete teine omadus on see, et erinevalt primaarvõtmetest võivad need sisaldada NULL-väärtusi, mis võivad olla unikaalsed. Duplikaatidest mitte-null-väärtused ei ole aga lubatud.
Vaadakem näiteks tabelit nimega Student, kasutades käsku desc, et näidata veergu unikaalse võtmega:
desc Student; +-----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+-------------+------+-----+---------+-------+ | id | int(11) | YES | UNI | NULL | | | name | varchar(60) | YES | | NULL | | | national_id | bigint(20) | NO | | NULL | | | birth_date | date | YES | | NULL | | | enrollment_date | date | YES | | NULL | | | graduation_date | date | YES | | NULL | | +-----------------+-------------+------+-----+---------+-------+
Siin on veeru id märgitud UNI-võtmega, mis näitab, et tegemist on unikaalse võtmega. Lisaks näeme veeru Null all märget YES, mis tähendab, et veerg id võib sisaldada NULL-väärtusi.
teine naide:
Tabelis Piloot on isikukood märgitud unikaalseks, mis tähendab, et kahel piloodil ei saa olla sama isikukoodi. See tagab andmete järjepidevuse, ilma et see oleks esmane võti.
CREATE TABLE Piloot (
pilootID INT AUTO_INCREMENT, -- Piloodi ID
isikukood VARCHAR(11) UNIQUE, -- Iga piloodi isikukood on unikaalne
nimi VARCHAR(100), -- Piloodi nimi
PRIMARY KEY (pilootID) -- Põhivõti
);
SIMPLE KEY – LIHTSAM VÕTI
SIMPLE KEY – on üksik atribuut või veerg, mis identifitseerib tabelis iga rea või kirje üheselt. Näiteks võib üliõpilase ID olla lihtne võti üliõpilaste tabelis, kuna kahel üliõpilasel ei saa olla sama ID-d. Lihtsat võtit nimetatakse ka esmaseks võtmeks ja sellel on tavaliselt mõned piirangud, näiteks ei lubata nullväärtusi ega dubleeritud väärtusi. Lihtsat võtit võivad teised tabelid viidata ka välisvõtmena, et luua nende vahel seos.
Tabel Lennujaam kasutab lihtsat võtit – ühte veergu (jaamID) – oma põhivõtmena. Iga lennujaam on identifitseeritud ühe unikaalse ID-ga
CREATE TABLE Lennujaam (
jaamID INT AUTO_INCREMENT, -- Lennujaama ID
jaama_nimi VARCHAR(100), -- Lennujaama nimi
linn VARCHAR(100), -- Linn
PRIMARY KEY (jaamID) -- Lihtvõti (üks veerg)
);
Javascripti objektid on võimsad andmestruktuurid, mis võimaldavad teil organiseerida seotud andmeid ühte üksusesse. Objektid koosnevad võtmes-väärtuses paaridest, kus võti on sõne (string) ja väärtus võib olla mis tahes Javascripti andmetüüp (arv, sõne, massiiv, funktsioon jne). Objektid pakuvad suurepärast viisi andmete struktureerimiseks ja manipuleerimiseks. Igapäevaelus võime objekte kohata mitmel viisil. Siin on mõned näited, kus objekte võib leida:
E-kaubandus – Veebipoodides kasutatakse objekte toodete esindamiseks, millel on omadused nagu nimi, hind, laoseis, kirjeldus, kategooria jne.
Hotelli broneeringud – Hotellid kasutavad objekte broneeringute esindamiseks, kus iga broneeringu objekt võib sisaldada andmeid nagu kliendi nimi, kuupäevad, toa tüüp, hinnaarvutused jne.
Autod – Iga auto võib olla objekt, millel on erinevad atribuudid nagu mark, mudel, värv, mootori maht, registrinumber jne.
Õpilased – Iga õpilane võiks olla objekt, millel on omadused nagu nimi, vanus, klass, hinded, osalemised, tegevused jne.
Javascripti programmides on võimalik vajaduse korral luua ise kohandatud objekte, samuti kasutada sisseehitatud objekte, mis on Javascripti enda poolt pakutavad objektid. Mõned sisseehitatud on näiteks:
Mathobjekt sisaldab matemaatilisi funktsioone ja konstante. Seda kasutatakse sageli matemaatiliste arvutuste tegemiseks, nagu ümardamine, ruutjuur, trigonomeetria funktsioonid jne.
Dateobjekt võimaldab töötada kuupäevade ja kellaaegadega. Selle abil saab luua uusi kuupäevaobjekte, saada juurde kuupäeva komponente (nagu päev, kuu, aasta) ja teha erinevaid toiminguid kuupäevade vahel.
Arrayobjekt on sisseehitatud objekt, mida kasutatakse massiivide loomiseks ja manipuleerimiseks. See sisaldab mitmeid meetodeid, mis võimaldavad massiividega töötada, nagu elemendi lisamine, eemaldamine, sorteerimine, filtreerimine jne.
Stringobjekt sisaldab meetodeid, mis võimaldavad töötada sõnedega. Näiteks, saate kasutada meetodeid nagu length (pikkuse saamine), toUpperCase (suurte tähtede kasutamine), substring (alamstringi võtmine) jne.
Objectobjekt on JavaScripti alusobjekt, mida kasutatakse kõikide objektide baasina. Selle meetodeid saab kasutada objektide loomiseks, omaduste lisamiseks ja juurdepääsuks, objektide kopeerimiseks jne.
Objekti loomine
Objekti süntaks koosneb võtme-väärtuse paari paaridest, kus võti on sõne ja väärtus võib olla mis tahes Javascripti andmetüüp. Selles näites on loodud objekt nimega “auto”, millel on järgmised omadused (properties):
Objekti süntaks koosneb võtme-väärtuse paari paaridest, kus võti on sõne ja väärtus võib olla mis tahes Javascripti andmetüüp. Selles näites on loodud objekt nimega “auto”, millel on järgmised omadused (properties):
let auto = {
mark: "Toyota",
mudel: "Corolla",
aasta: 2022,
varv: "punane",
lisavarustus: ["kliimaseade", "elektriaknad", "navigatsioonisüsteem"]
};
// calling
console.log(auto);
Objektid Javascriptis võivad sisaldada mitte ainult omadusi, vaid ka meetodeid. Meetodid on objekti funktsioonid, mis võivad manipuleerida objekti omadustega või teostada muid toiminguid objekti kontekstis. this võtmesõna kasutatakse meetodite sees, et viidata objektile, mille sees meetod on kutsutud. Tekitame eelmisele auto objektile meetodi, mis kuvab auto täispika nime. Selleks, et meetod saaks kasutada sama objekti omadusi, siis tuleb kasutada this võtmesõna.
Objektide massiiv on JavaScriptis andmete struktuur, mis koosneb mitmest objektist, mis on järjestatud indeksi alusel. Iga objekt on võti-väärtuse paaride kogum, kus võti on unikaalne ja väärtus on võti-väärtuse paari andmed. Objektide massiiv võib sisaldada mitmesuguseid andmetüüpe, sealhulgas teksti (string), numbreid, tõeväärtusi (boolean), funktsioone, muid objekte jne.
Objektide massiivi loomine ja kuvamine
Objektide massiivi loomine on suhteliselt lihtne. Alustame näiteks autode andmete salvestamisega. Iga auto on esindatud objektina, mis sisaldab teavet auto margi, mudeli ja tootmisaasta kohta.
JavaScripti massiivide meetodid on kasutatavad nii tavaliste massiivide kui ka objektide massiivide puhul. Sellised meetodid nagu push(), pop(), shift(), unshift(), splice(), slice(), forEach(), map(), filter(), reduce(), sort(), jne. on kõik kasutatavad sõltumata sellest, kas massiiv sisaldab lihtsaid andmetüüpe (näiteks stringid või numbrid) või keerukamaid andmeid (näiteks objekte või isegi teisi massiive).
Seda seetõttu, et JavaScriptis on massiivid objektid ning nii lihtsate andmetüüpide kui ka objektide hoiustamine massiivides toimub ühtemoodi. Andmete tüüp, mida massiiv sisaldab, ei mõjuta massiivide meetodeid. Näiteks uute objektide lisamine objektide massiivi push ja unshift abil.
//Eemaldab esimese objekti
autod.splice(0,1);
//Lisab objekti alates teisest indeksist, ei kustutata midagi
autod.splice(1,0,{ mark: 'Audi', mudel: 'A4', aasta: 2018 });
Massiivist otsimine
Objektide massiivist otsimiseks kasutame find meetodit, mis tahab käivitamiseks funktsiooni. Kasutame noolfunktsiooni, kuna see lühem.
//Otsimine
let otsing = autod.find(auto=>auto.aasta > 2018);
console.log(otsing);
Antud meetod leiab esimese vaste ja tagastab selle. Kui vastust ei leita, siis tuleb undefined. Mitme tingimuse seadmiseks kasuta && märke
Kuna find leiab vaid ühe tulemuse, siis mitme vastuse saamiseks kasuta filter meetodit. Filter loob massiivist uue massiivi ja väljastab tingimustele vastavad elemendid.
Näiteks meil on arvud ja soovime sealt saada paarisarve
Autode puhul saame pöörduda näiteks auto.aasta poole ja filtreerida need, mis on uuemad kui 2018
//Filtreerimine
let filter = autod.filter(auto=>auto.aasta > 2018);
console.log(filter);
Massiivi sorteerimine
Viimase meetodina vaatame sorteerimist sort. Lihtsalt sorteerimine objektide massivii puhul õigesti ei tööta. Seepärast peame kasutama võrdlusfunktsiooni.
autod.sort((a, b) => a.aasta - b.aasta);
console.log(autod);
Siin on (a, b) => a - b võrdlusfunktsioon, mis ütleb sort()-ile, et järjestada numbrid nende tegelike numbri väärtuste, mitte stringiväärtuste järgi. Funktsioon a - b tagastab negatiivse väärtuse, kui a on väiksem kui b, positiivse väärtuse, kui a on suurem kui b, ja 0, kui a ja b on võrdsed – just see, mida sort() vajab oma elementide õigesti järjestamiseks.
Ülesanne
Raamatu objekt
1. Loo objekt raamat, millel on vähemalt kolm omadust:pealkiri, autor, aasta.
let raamat = {
pealkiri: 'kuritegu ja karistus',
autor: 'Fyodor Dostoevsky',
aasta: 1866
};
2. Lisa meetod, mis kuvab esimese raamatu kirjelduse.
console.log(raamat.pealkiri);
Vastus:
3. Lisa meetod, mis muudab väljaandmise aastat ja prindi tulemused konsooli.
kuritegu ja karistus muudetud aasta 2020
let raamat = {
pealkiri: 'Kuritegu ja karistus',
autor: 'Fyodor Dostoevsky',
aasta: 1866
};
raamat.muudaAasta = function() {
this.aasta = 2020;
console.log(this.aasta);
};
raamat.muudaAasta();
Raamatukogu
1. Loo objekt raamatukogu, mille omaduseks on raamatud (massiiv raamatutest).
let raamatukogu = [
{ pealkiri: 'läänerindel on kõik vaikne', autor: 'Erih Remark', aasta: 1928},
{ pealkiri: 'Sipsik', autor: 'Eno Raud', aasta: 1962},
{ pealkiri: 'Jevgeni Onegin', autor: 'Aleksandr Pushkin', aasta: 1833}
];
2. Lisa meetod, mis kuvab kõik raamatud kenasti konsoolis.
Christmasify on lihtne kasutada jõuluteemaline plugin, mis lisab teie WordPressi veebilehele lund, jõuluvana, kaunistusi, muusikat ja kauni jõuluteemalise kirjatüübi. Kõik efektid on lülitatavad, nii et saate valida need, mis teile meeldivad! :DDD
Nagu öeldud, on see lihtne kasutada, nii et ma näitan teile, kuidas!
Pärast selle pistikprogrammi allalaadimist ilmub see vasakpoolsesse menüüsse, mis näeb välja järgmine:
seadistada:
Klõpsake lihtsalt soovitud valikutele:
Siin saate valida erinevaid valikuid lumekestest aktiveerimise kuupäevani ja aegumiseni, kui soovite, et plugin lõpetaks töö: