From Wikipedia, the free encyclopedia
Redux on avatud lähtekoodiga JavaScripti raamistik rakenduse oleku haldamiseks. Tavapäraselt kasutatakse Reduxi koos teiste levinud JavaScripti raamistikega, mida kasutatakse kasutajaliideste loomiseks (nt React või Angular). Redux on loodud inspireerituna Facebooki Fluxi arhitektuurist. Selle loojad on Dan Abramov ja Andrew Clark.[1]
Redux on väike raamistik lihtsa ning piiratud rakendusliidesega, mis on disainitud konteineris rakenduse olekupuu hoiustamiseks. Selle tööpõhimõte sarnaneb funktsionaalse programmeerimise ideega taandada rekursiivselt konkreetse funktsiooni abil andmed soovitud kujule. Olekupuu andmed ei ole otse modifitseeritavad, vaid uuenevad rakenduse oleku muutudes automaatselt.[1]
Selle tööpõhimõte on saanud inspiratsiooni funktsionaalse programmeerimise keelest Elm.[1]
Dan Abramov ja Andrew Clark lõid Reduxi raamistiku aastal 2015.[2] Abramov alustas Reduxi esmase implementatsiooni kirjutamist parajasti siis, kui ta valmistus esinema React Europeäi konverentsil. Tema huvialaks oli juba tollal, kuidas uuendada rakendust ilma seda uuesti laadimata. Abramov on öelnud, et tema eesmärgiks oli implementeerida idee Fluxi loogika muutmisest. Selle implementeerimine lubaks tal ajas rännata. See lubaks kasutada rakenduse tulevasi muudatusi koodis.[3]
Abramovit inspireeris Fluxi struktuuri ja taandava funktsiooni sarnasus. Ta vaatles Fluxi kui aegamisi töötavat taandavat funktsiooni: konteinerid koguvad ja kohandavad endas sisalduvaid andmeid vastavalt programmi tegevustele. Tema eesmärgiks oli seda kontseptsiooni edasi arendada: "Mis juhtuks siis, kui Fluxi mälu ei oleks lihtsalt mälu, vaid taandav funktsioon?"[2]
Abramov võttis ühendust Andrew Clarkiga võimaliku koostöö osas. Clark on nimelt Fluxi implementatsiooni Flummoxi autor. Kõige muu seas tunnustab Abramov Clarki, et viimane tegi võimalikuks Reduxi tööriistade süsteemi kasutamise, aitas Abramovil luua sidusa rakendusliidese ning implementeeris laienduses vaja minevat, nagu vahetarkvara ja mälu võimendamine.[2]
Reduxi tegevused algavad rakenduse renderdusega rakenduse olemasoleva olekupuu põhjal. Kui kasutaja teeb mõne rakenduse olekupuud mõjutava tegevuse (näiteks klõpsab nuppu või sisestab tekstiväljale teksti), siis kutsutakse välja aktsioonid. Aktsioonid sisaldavad informatsiooni tehtud tegevuse kohta ning need saadetakse pärast töötlemist edasi konteinerisse. Taandav funktsioon võtab aktsioonist saadud andmed ning uuendab nende põhjal rakenduse olekupuud.[4]
Reduxi kasutamisel on mitmeid eeliseid:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.