React

Tästä tehtävästä on uusittu versio, jossa käytetään function-komponentteja.

Ennen näiden tehtävien tekemistä niin katso seuraavat luennot:

Avaa Reactin aloitustutoriaali Voit yrittää toteuttaa tutoriaalin ohjeiden mukaan react-sovelluksen codepenissa tai voit jatkaa näillä tehtävillä ja käyttää tutoriaalia apunasi seuraavissa tehtävissä:

React.PureComponent

Reactin komponentit voi periä joko React.Component tai React.PureComponent-luokasta. Nämä toimivat muuten samalla tavalla, mutta React.Component päivittää sivun sisällön herkemmin kuin React.PureComponent. React.PureComponentissa on valmiina tilan muutosten vertailu shouldComponentUpdate-tapahtumassa. Vertailu on kuitenkin pintapuolinen (shallow) eli se ei havaitse muutoksia, jos tilan rakenne on kompleksinen eikä sitä kopioida kunnolla. React.PureComponent on hyvin toteutetussa ohjelmassa tehokkaampi, koska se ei tee turhia päivityksiä sivun sisältöön.

Todennäköisesti olet suoraan mutatoinut komponenttiesi tilaa. Olet muistanut käyttää setState-metodia, mutta luultavimmin et ole tehnyt muutoksia tilan kopioon vaan suoraan tilassa olevaan taulukkoon tai objekteihin. Kts. How to accidentally mutate state. And why not to.

Korjataan tilan käsittelyyn liittyvät virheet:

Lomakkeet

Esimerkit

malliratkaisu 2020 toteutettuna class-komponenteilla

malliratkaisu 2022 toteutettuna function-komponenteilla

Vanhemmat esimerkit ja vanhemmalla syntaksilla: Malliesimerkki ja Toinen malli

Esimerkki reactin date-picker-komponentin käytöstä. Huom. pitää erikseen hakea ja ottaa sivulla käyttöön datepicker- ja moment-javascript-kirjastot.

Lisätietoa

Käyttäjien kommentit

Kommentoi Lisää kommentti
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta