Skip to content

muutama huomio

Matti Luukkainen edited this page Jan 25, 2018 · 3 revisions

setState on asynkrooninen

Muutamat ovat jo törmänneet siihen, että React kutsuu funktiota setState asynkroonisesti, eli jos meillä on seuraava koodi

console.log(this.state.counter)
this.setState({counter: 55})
console.log(this.state.counter)

tulostavat molemmat rivit saman arvon, sillä Reactin tila ei saa uutta arvoa heti komennon this.setState jälkeen, vaan vasta sitten kun suorituksen alla oleva metodi on suoritettu loppuun ja setState on saanut mahdollisuuden suoritukselle.

console.log

Mikä erottaa kokeneen ja kokemattoman Javascript-ohjelmoijan? Kokeneet käyttävät 10-100 kertaa enemmän console.logia.

Paradoksaalista kyllä tämä näyttää olevan tilanne, vaikka kokematon ohjelmoija oikeastaan tarvitsisi console.logia (tai jotain muita debuggaustapoja) huomattavissa määrin kokenutta enemmän.

Eli kun joku ei toimi, älä arvaile vaan logaa tai käytä jotain muita debuggauskeinoja.

HUOM kun käytät komentoa console.log debuggaukseen, älä yhdistele asioita "javamaisetsi" plussalla, eli sen sijaan että kirjoittaisit

console.log('propsin arvo on' + props)

erottele tulostettavat asiat pilkulla:

console.log('propsin arvo on', props)

Jos yhdistät merkkijonoon olion, tuloksena on suhteellisen hyödytön tulostustmuoto

propsin arvo on [Object object]

kun taas pilkulla tulostettavat asiat erotellessa saat developer-konsoliin olion, jonka sisältöä on mahdollista tarkastella.

Visual Studio Coden snippetit

VS Codeen on helppo määritellä "snippettejä", eli Netbeansin "sout":in tapaisia oikoteitä yleisesti käytettyjen koodinpätkien generointiin. Ohje snippetien luomiseen täällä

VS Code -plugineina löytyy myös hyödyllisiä valmiiksi määriteltyjä snippetejä, esim. tämä

Pakolliset tehtävät, tehtävien vaikutus arvosanaan

Joissain yhteyksissä on ollut pientä epäselvyyttä mitä tiettyjen tehtävien pakollisuus tarkoittaa, ja mikä eipakollisten tehtävien rooli on. Tarkennusta asiaan tehtävien sivun alussa

linkkivinkit

Kurssisivun alaisuudessa on nyt osio, jonne kaikkien toivotaan lisäilevät hydylliseksi kokemiaan linkkejä. Lisääminen onnistuu tekemällä pull request tänne

Kun lisäät linkin, laita linkin yhteyteen pieni kuvaus mitä linkin takaa löytyy.

Clone this wiki locally