React – Fűnyíró webshop feladatsor

React

Feladatsor pdf

A sablont kell tulajdonképpen szétbontani komponensekre, és React kompatibilissé alakítani! Szerencsére ebben a React hibaüzenetei is segítenek.

Forrás: https://drive.google.com/file/d/1fW-GVNrZw9Apn3cJjiSRIBmZyVP53pjv/view?usp=drive_link

Amire figyelni kell:
class – className csere mindenhol
inline css esetén is módosítani kell a szintaktikán dupla kapcsos zárójel szükséges style={{ height: ‘150px’ }}
React-ben minden eseménynév, attribútum camelCase, az eseménykezelőkhöz függvény szükséges! Összefoglaló az oldal végén.

Kiindulási alap, egy html oldal. Ebből fel tudjuk használni a szükséges „szekciókat”.

1.feladat: Készítsen egy Fejlec komponenst! A komponens a cím szövegét egy változóból kapja meg! A komponenst töltse be az App.jsx-ben, és itt adja át neki a megjelenítendő szöveget! A fejléc tartalma mindig látszódjon!

2. feladat: Készítse el a Bemutatkozas komponenst a sablon alapján! A képek a public mappában elérhetőek! Néhány helyen a „Büszkeségeink” szekcióban inline css-t használtak, ezeket alakítsa át React kompatibilissé!

3. Feladat: Készítse el a Termekek komponenst! Kérdezze le a backendtől a termékek adatait!
Végpont: http://localhost:8000/termekek
Termék adatai: {termek_id, termek_nev, termek_ar, termek_leirasa, termek_teljesitmeny, termek_vagoszelesseg, termek_motor, termek_kep} Ezek közül elég a mintának megfelelő adatokat megjeleníteni! A képek a megjelenítéshez szükséges adatokkal szerepelnek az adatbázisban és a public/images mappában.

Szokásos fetch, 1db fűnyíró „card”-ot használunk fel a sablonból, az adatok megjelenítéséhez.

4. feladat: Készítse el az UjTermek komponenst! A sablonban megtalálható űrlapot használja!
A backend végpontja a http://localhost:8000/termekek címen érhető el.
A következő adatokat kell elküldenie: termek_nev, termek_ar, termek_leirasa, termek_teljesitmeny, termek_vagoszelesseg, termek_motor, termek_kep
Ha elkészült, vegye fel az Agrimotor 4216-os fűnyírót az adatbázisba! Az adatokat a 4216.txt fájlban megtalálja. A backend sikeres feltöltés esetén 201 Created státuszkódot küld vissza, és az új rekord id-jét. Sikeres feltöltés esetén navigáljon vissza a Termekek oldalra!

Itt is figyelni kell a class-className átalakításra, illetve az eseménykezelőkre! (onSubmit, onChange)

5. feladat: Készítse el a Menu komponenst! A navigációban az alábbi útvonalakat használja:
„/” -ez az útvonal navigáljon a Bemutatkozas komponensre!
„/bemutatkozas” – ez az útvonal a Bemutatkozas komponenst töltse be!
„/termekek” – ez az útvonal a Termekek komponenst töltse be!
„/ujtermek” -ez az útvonal az UjTermek komponenst töltse be!
Oldja meg, hogyha nem létező útvonalat adnak meg, akkor az alkalmazás főoldala jelenjen meg!
A routingot az App.jsx-ben hozza létre!

A sablonban a menük sima hivatkozások. Ezeket kell átalakítani Link-ké, nyilván az <a> tag helyett, és a href helyett jön a to. Ne maradjon benne az <a href…> mert nem fog működni.

Menu.jsx

App.jsx

Az App.jsx tartalmazza a routingot. Az 1. feladatban elvárt paraméteres címet is itt állítjuk be.


HTML -> REACT átalakítás összefoglaló

HTML attribútumReact attribútum
classclassName
forhtmlFor
onclickonClick
onchangeonChange
onmouseoveronMouseOver
onkeyuponKeyUp
onkeydownonKeyDown
readonlyreadOnly
maxlengthmaxLength
tabindextabIndex
autocompleteautoComplete
autofocusautoFocus
value (input)value + onChange
checkedchecked + onChange

inline css átalakítása

eseménykezelés

tagek-nél záró tag szükséges (img, br, hr esetén is)

több elem esetén konténer vagy Fragment használata szükséges