Kasspars Posted May 15, 2015 Report Share Posted May 15, 2015 Ja tu uzdod šādu jautājumu, tad tu esi nepareizi sapratis react. Tev nav jādomā par citas komponentes setState. Ja parent komponentē izmainās dati (setState), tad uzreiz tiek izsaukta render metode, kura visām child komponentēm iedod jaunus props. Quote Link to comment Share on other sites More sharing options...
Wuu Posted May 15, 2015 Author Report Share Posted May 15, 2015 (edited) Paldies, sapratu. Edited May 15, 2015 by Wuu Quote Link to comment Share on other sites More sharing options...
qwerty Posted May 15, 2015 Report Share Posted May 15, 2015 Ko domājat par React testēšanu? Kas attiecas uz unittestiem, man patīk jest ideja automātiski mockot visu, kas nāk no require() funkcijas, bet tajā pašā laikā jest ir ļoooti lēns. Turklāt ņemot vērā, ka tādā viduvējā projektā varētu būt ap 100 komponentiem, tad nemaz tā negribas tos unittestus visiem komponentiem rakstīt.. Iespējams vieglāk pāriet visam pāri augstākā līmenī ar selenium. Nav tik plašs coverage, bet domāju ka izķer 80% bugu. Quote Link to comment Share on other sites More sharing options...
Wuu Posted May 16, 2015 Author Report Share Posted May 16, 2015 (edited) Nē, nesapratu. Konceptuāli saprotu visu, viss tikai vienā virzienā. bet... Man ir sākuma arrays (Ajax), ar kuru es veidoju saturu. Būti, pieeja viņam ir tikai pirmajai klasei. Ajax saturs saglabājas state. Bet divas klases zemāk, es ar pogu gribu izmainīt arrayā mainīgo un atjaunot nerenderēt visu pa jaunu. Kā man to izdarīt? Atkal atgriežoties pie jautājamu, kā man no vienas klases izmainīt state citai klasei? Edited May 16, 2015 by Wuu Quote Link to comment Share on other sites More sharing options...
Kasspars Posted May 16, 2015 Report Share Posted May 16, 2015 React ideja tieši ir visu pārrenderēt. Tāpēc jau arī ir izveidots virtuālais DOM, kurš tiek pārrenderēts un reālajā DOM tiek ieliktas tikai reālās izmaiņas. Reālais DOM tiks izmainīts, tikai tad, kad tiešām ir bijušas izmaiņas. Tāpēc nevajag baidīties no pārrenderēšanas. Quote Link to comment Share on other sites More sharing options...
Wuu Posted May 16, 2015 Author Report Share Posted May 16, 2015 Kasspars, zinu to vissu. Esmu izstudējis pāris video, tutoriāļus. Bet konceptuāli nespēju uzbūvēt galvā ideju. Main class / \ menu saturs Pēc manām domām loģiska uzbūve, vienā pusē klase ar izvēlni. Otrā saturs. Kā man piespiežot pogu menu, izmainīt state saturā? Šobrīd mans risinājums bija pārvietot menu uz Main class. Bet tad zūd normāla struktūra. Tik pat labi, var uzbliezt vienu lielu klasi un aizmirst. Quote Link to comment Share on other sites More sharing options...
Kasspars Posted May 16, 2015 Report Share Posted May 16, 2015 (edited) Main klasē padod "menu click callback" uz Menu komponentei (caur props) tad, kad Menu komponentē notiek kliks, tu izsauksi padoto "menu click callback". Līdzi padod menu identifikatoru Tālāk Main klase savā state uzstādīts activeMenuId (uzstādot state notiks rerender) activeMenuId tiek caur props padots Satura komponentei Tad, kad notiks rerender Satura komponente ielādēs saturu vadoties pēc padotā activeMenuId var Main = React.createClass({ getInitialState: function() { return { activMenuId: 1 } }, handleMenuClick: function(menuId) { this.setState({activMenuId: menuId}) }, render: function() { return ( <Menu onMenuClick={this.handleMenuClick} /> <Saturs menuId={this.state.activMenuId} ); } }); Edited May 16, 2015 by Kasspars Quote Link to comment Share on other sites More sharing options...
codez Posted May 16, 2015 Report Share Posted May 16, 2015 Aptuveni kā Kaspars rakstīja: http://jsfiddle.net/d9crpzqy/7/ Quote Link to comment Share on other sites More sharing options...
qwerty Posted May 17, 2015 Report Share Posted May 17, 2015 Aptuveni kā Kaspars rakstīja: http://jsfiddle.net/d9crpzqy/7/ Codez, tu varētu pastāstīt par saviem ieskatiem uz React testēšanu. Komponentiem individuāli unit testus raksti? Vai selenium? Vai kaut kas cits? Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 17, 2015 Report Share Posted May 17, 2015 > Do you have a moment to talk about our lord and savior, testing? _Neviens neatbild, visi ignorē._ :D Quote Link to comment Share on other sites More sharing options...
Kasspars Posted May 17, 2015 Report Share Posted May 17, 2015 Tāpēc, ka realitātē developerim tie testi ir vairāk čakars kā ieguvums Quote Link to comment Share on other sites More sharing options...
briedis Posted May 17, 2015 Report Share Posted May 17, 2015 Tāpēc, ka realitātē developerim tie testi ir vairāk čakars kā ieguvums Ja testē to, kas nav jātestē, un raksta testus rakstīšanas pēc - tad jā, protams. Quote Link to comment Share on other sites More sharing options...
codez Posted May 17, 2015 Report Share Posted May 17, 2015 (edited) Es pieturos pie principa, ka uzreiz ir jāraksta kvalitatīvs kods, nevis uzrakstīt pāris vai vēl trakāk ļoti, ļoti daudz testus un tad mainīt kodu, līdz viņš iziet visus testus. Tā kā nerakstu React komponenšu bibliotēkas un manas komponentes lielākoties ir specifiskas attiecībā pret projektu, tad vairāk visu testēšanu balstu uz funkcionāliem testiem - Scalatest ar Selenium. Taču, ja ir vajadzība pēc tīras React komponenšu testēšanas, tad izmantoju Mocha un React testa addonu, aptuveni šādi: http://jsfiddle.net/d9crpzqy/9/ Saprotams, ka manā gadījumā (Scala, sbt) es priekš testu laišanas izmantoju sbt un attiecīgos pluginus. Edited May 17, 2015 by codez Quote Link to comment Share on other sites More sharing options...
qwerty Posted May 17, 2015 Report Share Posted May 17, 2015 Nu, te kaut kad atpakaļ F3llony rakstīja, ka principā testēt var arī pašus testus. Diezgan trāpīgi. Ikdienā tā arī izskatās, ka, ja Selenium testi ir uzrakstīti, tad tas jau ir daudz. :D Quote Link to comment Share on other sites More sharing options...
Wuu Posted May 19, 2015 Author Report Share Posted May 19, 2015 Kaut kā nepielec, baigā atšķīrība no prasta JQuery. Projektu pabeidzu, bet īsti skaidrības nav. Laikam, būs vēl kaut kādus divus jāuztaisa. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.