⊗jsrxPmBsCs 2 of 57 menu

Kaksi perusideaa Reduxissa

Ennen kuin aloitamme Redux-kirjaston opiskelun, tutustutaan kahteen sen perusideaansa. Ensimmäisen idean, joka koskee tilan hallintaa, tarkastelemme tavallisen laskurin avulla Reactin tilassa:

function Counter() { // Tila const [count, setCount] = useState(0) // Toiminto: function clickHandler() { setCount(count + 1) } // Näkymä: return ( <div> <span>{count}</span> <button onClick={clickHandler}>+</button> </div> ) }

Tässä koodissa näemme tilan muuttujalle count - tämä on laskurin totuuden lähde. Sitten näemme toiminnon (action) - tapahtuman, joka käyttäjän napsautuksessa aiheuttaa tilan päivittämisen. Ja lopuksi, näkymän (view), jolla näytämme käyttöliittymän.

Siten kaavio on melko yksinkertainen: painiketta painetaan - tila count (State) painalluksesta (Action) muuttuu, näin ollen näkymä (View) muuttuu - meidän tapauksessamme se on numero näytöllä.

Kaikki on kuitenkin monimutkaisempaa, jos meillä on useita komponentteja, joiden on käytettävä samaa tilaa. Voimme tietysti esimerkiksi nostaa tilan yläpuolelle komponentteihin, mutta tällainen ratkaisu ei aina vähennä ongelmaa. Redux tarjoaa tässä tapauksessa mahdollisuuden luoda yhden paikan sovelluksessa, joka sisältää globaalin tilan ja tietyt käyttäytymismallit tämän tilan päivittämisen yhteydessä. Tässä juuri ensimmäinen perusidea piilee (!).

Toinen idea liittyy muuttumattomuuteen, eli datan pysyvyyteen. Muistat varmasti JavaScriptistä, että taulukoita ja olioita voidaan muuttaa. Datan muuttaminen suoraan Reduxissa, kuten muissakin kehyksissä, pidetään huonona tapana ja voi johtaa ennustamattomiin seurauksiin. Siksi Reduxissa alkuperäisten objektien ja taulukoiden tulee pysyä muuttumattomina, ja muutoksia voimme tehdä vain niiden kopioihin.

Kerro, mistä ensimmäinen perusidea Reduxissa koostuu.

Kerro, mistä toinen perusidea Reduxissa koostuu.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää