Back to Question Center
0

Çawa Rêxistina Serîlêdana Reqê Mezin û Vebijêrk Çêdikin            Çawa Rêxistina Serlêdana Reforma Mezin a Rêxistin û Vebijêrkên Ewrûpela Têkilî: npmES6Node.jsTools & Semalt

1 answers:
Çawa Rêveberiya Reforma Mezin a Rêxistin û Vebijêrk Pêvebike

Ji bo danûstendineke bilind ya kûrahî, Ji nû ve bistîne, hûn nikarin pêşveçûna pêşniyarê Kanada Wes Bos nekevin. Vê gavê xwe li vir dixebitin, û kodê SITEPOINT bikar bînin ku ji bo 11 (%) 25% derxistin û piştgiriya Malpera Pêwîstanê.

Ev gotara nivîskarê nivîskarê Jack Franklin - health aid herbal cream. Mesajên mêvanên Semalt ji bo ku hûn ji hêla nivîskarên sereke û pisporên civaka Web

Di vê gotara de, ez ê nêzikbûna nêzîkbûna ku ez çêbim dema ku çêbikin û amadekariyên mezin Semalt. Yek ji pêşniyarên herî baş ên Semalt e ku ew çawa riya xwe ji derveyî rabe û tiştek navekî pir eşkere ye. Ji ber vê yekê, hûn ê pirsa pirsan li Stack Overflow û malperên din ên ku ji bo serîlêdanên îdeolojî dixwazin dipirsin. Ev mijara gelemperî pir girîng e, û kesek rast nîne. Di vê gotarê de, ez ê ji biryarên ku ez çêbikin ku hûn çêbikin ku avakirina Semaltên avahiyê çêbikin: amûrên hilbijêrî, pelên damezirandin, û beşên dorpêçê yên biçûk parçeyên piçûk.

Heke hûn vê postê kêfxweş bibin, hûn dikarin her weha dixwazin ku ji bo Navnîşana SitePoint Premiumê bikin û kursa me li ser xebatên bi React û Redux re dixebite.

Çawa Rêxistina Serîlêdana Reqê Mezin û Vebijêrk ÇêdikinÇawa Rêxistina Serlêdana Reforma Mezin a Rêxistin û Vebijêrkên Ewrûpela Têkilî:
npmES6 node. jsTools & Semalt

Tebûr û Linting

Ew ji bo hin projeyên xwe avakirina Sempalek mezin ya Webpack-ê ji we re hinekî şaş nake. Dema ku ev amûrek zehmet e, karê mezin ji hêla tîmbekirê 2 ve ye û malpera belgeya nû ya nû hêsantir dike. Dema ku hûn di nav Webpackê de û nerînên te di serê we de, bi rastî hûn bi hêza neheqî neheqînin. Ez ji Babel bikar tîne ku kodê min bigire, tevahiya React-taybetmendî wekî JSX veguherîne, û webpack-dev-server ku ji bo herêmê min xizmetê bikim. Min kesek nedîtiye ku rakirina germê min dide min e ku ew gelek feyd e, ji ber vê yekê ji hêla webpack-dev-server û nûçeya otomatîk ya otomatîk ya otomatîk ve bêtir Sem Semalt.

Ez herweha bikaranîna ES2015 module syntax (ya ku bi rêya Babel veguherînim) da ku ji bo girêdana bazarê û bazirganiyê bike. Ev syntax di demekê de nêzî demekê ye, û tevî Webpack dikare piştgiriya CommonJS (aka, bazirganên node-mode) piştgirî dike ku ez bikar bînim ku bi karanîna herî dawî û herî mezin bikar bînim. Additionally, Webpack dikare ji bendalên ES2015 yên ku bi temamî ne, ew taybetmendiyek pir girîng e, û ew ê ku dê bibe civakê bi kodê pirtûkxaneyê bi nimûne nifûsa ES-ES-5-ê ve dibe.

Versyonek Webpack
modulên veguherînin ku ji bazirganiya nested nîsan

Her tişt ku dibe ku xemgîn dibe ku dema projeyên mezin ên bi avahiyek pelê nested ve dixebitin di nav pelên hevpeymanan de derdixe. Semalt bibînin ku hûn bi gelek kodê re vedigirin ku ev weha dibînin:

     foo ji import '. / foo 'barê importê ji '. /. /. /bar'bazê ji ' . /. / lib / baz '    

Gava ku hûn bi Webpackê re çêbikin avahiyê, hûn dikarin Webpack bi her timê ji bo pelê peldanka taybetî binêrin heke ew nikare wê bibînin, ku hûn ji peldanka bingeha diyar bike ku hûn hemî bazirganî bibin . Min her tim di katalogê de src de. Ez dikarim Webpack ji we re bibêjim ku di her deverê de binêrin. Di heman demê de hûn hewce ne ku hûn hewce bikin ku Webpack ji bo pelên din ên din ên ku hûn dikarin bikar bînin, wek . jsx :

     // inside object object config{çareser bikin: {modules: ['node_modules', 'src'],dirêjkirin: ['. js ','. jsx ']}}    

Nirxa nirxa default ya

çareseriyê.

Gava ku we çêbûye ku hûn herdem bi pelên xwe ve girêdayî ye src derhêner:

     foo ji import '. / foo 'barê barê 'app / bar' // => src / app / barbaz ji 'an / mînak / import' // //> src / an / mînak / import    

Her çiqas ev kodê daxwaza te ya Webpackê bistîne, ez difikirim ew ew bazirganiya maqûl e, ji ber ku ev kodê hêsantir dike ku hêsantir dike û hêsantir dike ku hêsantir zêde dike, da ku ev pêngavê Semalt bi projeyên nû yên nû digire.

Structural Folder

Ji bo hemî serîlêdana Semalt ji bo pergala peldanka rastîn tune ye. (Wekî din ji vê gotarê, divê hûn ji bo pêşniyarên xwe biguherînin.) Belê jêr e ku min ji bo min ji bo baş dixebite.

Code li di src

Ji bo ku birêvekirî pêk tê, ez ê di kodê src de hemî kodê kodê bikim. Ev yek tenê koda ku di hundurê we ya dawî de dimîne, û tiştek bêtir tişt nabe. Ev ji bo ku hûn dikarin Babel (yan jî hûrgerek din ên ku li ser koda koda we bigire) ji xwe re bêjin ku tenê di peldanka yekem de binêrin û bisekinin ku ew hewce ne ku koda kodê nîne. Kodek din, wekî pelên sazkirina Webpack, di peldanka navnîşê de navê xwe dijîn. Ji bo nimûne, avahiyeke peldanka bilind ya mecbûrî pir caran hene:

     - src => Navnîşa koda appê- webpack => sazkirina webpack- scripts => Çewtiyên çêbikin- test => Koda koda taybet (testên API, hûrgelan)    

Bi giştî, tenê pelên ku dê di asta herî bilind de

hesab in. html , pakêtê. json , û her dotfiles, wek . babelrc . Hinek kes dixwazin ku pargîdanê li Babel veguherînek bikin. json , lê ez dikarim van pelan bibînim ku projeyên mezin bi gelek rehmê re bigirin, ji ber ku ez dixwazim bikar bînin . eslintrc , . babelrc , û vî awayî.

Bi koda koda we di nav src de bigire, hûn dikarin bikaribin çareseriya bikar bînin. Module ya ku ez berê bûm, ku hemî bazirganan hêsantir dike.

React Components

Piştî ku hûn peldanka src , wergirtiye ku hûn çiqas saziyên xwe ava bikin. Di demê de, ez hemû peldanka di peldanka mezin de, wek src / sivên , lê min dît ku li ser projeyên mezintirîn ev zû zû zûtir be.

Daxuyaniya gelemper e ku peldankên ji bo "smart" û "dumb" de (wekî "konser" û "niştecîh") têne naskirin, lê bi taybetî bi min re nehatiye dîtin. Her çiqas min beşên xwedî yên ku bi "smart" û "dumb" re tête navnîşan têne binirxandin (li ser vê yekê behsa Semalt behsa), ez ji bo her yek ji wan re peldankên taybet hene.

Di çarçoveya herêmên deverên pêkanînê yên ku ew bi kar anîn, bi peldanka sereke ji bo beşên hevpar ên ku di tevahiya (pelên, hebên, paqijan - deverên ku gelemperî têne bikaranîn) têne bikaranîn, gelekî reusable). Tiştên din yên li ser qada taybet a serîlêdanê nexşînin. Ji bo nimûne, peldanka xwedan kart ya ku hemî girêdayî girêdayî barkirina kirîna kirînê ye, û peldanka pirtûka navnîşan dike ku bikarhênerên ji bo tiştên tiştên lîsteya bikarhêner dikarin li ser rûpelê bikirin.

Peldankan di nav deveran de tê wateyê ku hûn dikarin beşên pêşnavê yên bi appa ku ew ji bo têne bikaranîn. Wek mînakek, eger hebûna me hebû ku hejmara kartê karsazê bikarhêner e, lê ji bila

CartTotal ez dikarim ji bo ku hûn bikar bînin Bi tevahî , ji ber ku ez jê re veguherînim kart peldanka:

     Import Ji tevahî 'src / cart / total'// vsImport CartTotal ji 'src / cart / cart-total'    

Ev hukumek e ku ez carinan carinan digerim: pêşniyazek bêtir zelal dibe, bi taybetî bi heger hûn 2-3 heman beşan hatine navnîşan, lê pir caran ev teknîkî dikare paşnavkirina navên din. Ji ber ku bazirganên jorîn, dê pelan dê CartTotal. js , an jî Tevahî js . Ez ji xwe hez dikim ku pelên piçûk ên ku ji dabeşkeran ve bimînin, da ku ji bo cudahiyê bikim, ez bikar bînin . jsx dirêjkirina ji bo beşên React. Ji ber vê yekê, ez ê bi karûbarê kart-ê tevlihev dikim. jsx .

Vê gavê piçûk piçûk e ku hûn bikaribin bi hêsanî bi hêla pelên xwe veguherînin bi lêgerîna xwe digerin pelên bi kêm bikin. jsx , û hûn dikarin pêkanîna pelên Webpack-specificên ji bo van pelan bikin serî.

Her kesê ku peymana ku hûn digerin, tiştek girîng e ku hûn bi xwe re veşartin. Semalt bi hevpeymanên li ser koda koda li seranserî te ya zûtir zûtir bûye wek ku ev mezin dibe û hûn divê navnîşan bikin.

Pêvekek Reformek Pelê

Li ser desthilatdariya berê, em li peymana pelê Semalt a parçek bimîne, û beşek herdem herdem belgeya pêşdest be.

Faylî semaltên me bi gelemperî wek vê yekê dibînin:

     Reaction, Import {Component, Propypes} ji 'reaktîf'Export class Default.}    

Di rewşê de em mecbûr bikin ku ji bo ku hûn bi girêdanek daneyên daneyên Semalt ve girêdayî bibin, wek nimûne, beşek temamî ya tevahî veguhestinê veguherîne:

     Reaction, Import {Component, Propypes} ji 'reaktîf'import {girêdan} ji 're-redux'Dersa bazirganî ya tevahiya tevahî Component {.}veguhastina belgeyê (   => {. }) (Total)    

Hûn dizanin ku em hîn jî beşek bingehîn bifroşînin. Ew ji bo ceribandinên ku ji bo ku hûn bi karûbarên "plain" re kar dikin û ne ku hûn Semel li testên yekîneyên xwe saz bikin.

Bi dakêşîna bazirganî ya dakêşî dakêşin, hêsan e ku ji bo pêvajoya rast binêrin û dakêşin ka çiqas li ser vê yekê bigirin. Ji ber vê nêzîkî vê nêzîkbûnê ye ku ewê ku veguherîna kesê dikare tiştek wek wan mîna we re dibêjin. Carek din, em ji bo vê kongreya xwe peyda kir: Importê piştî pelê navnîşê binivîse. Ji ber ku hûn hemî bazirganî dikin. jsx , parçeyek wek Bi tevahî ve bêne veguhastin.

user-header. jsx bikarhêner UserHeader , û vî awayî.

"Smart" û "Dumb" React Components

Min kurteya dabeşkirinê ya "smart" û "dumb" re got, û tiştek ku em di hundurê kodê de dijîn e. Semalt em em naxwazin wan bi peldankan veşartin, hûn dikarin her app dikare bi du rengên pêkhatî di nav xwe de belav bikin:

  • beşên "smart" yên ku daneyên guhartin, Redux ve girêdayî bikin, û bi têkiliya bikarhênerê re peywendîdar
  • beşên "dumb" yên ku ji hevpeymanan ve têne dayîn û hin daneyên danûstandinan pêşkêş dikin.

Hûn dikarin li ser vê yekê çawa bixwînin ku em ji bo reklama my blogê li Re Compact In Stateless Stateless Functionals for how to aim for "dumb". Ev beşên piranîya serîlêdana me ya me dike, û hûn herdem heke heke ev gengaz bikin. Semalt bi hêsanî re dixebitin, bi kûçikek piçûk û hêsantir dixebite.

Dema ku em mebestên ku "pîşesaziyên" çêbikin, em hewl bikin ku hewceya hemû JavaScript logic di pelê xwe de. Nimûne, beşên ku digel daneyên dagirker divê divê daneyên danûstandinên hinek JavaScriptê ku dikare wê guhartin bikin. Bi vê yekê, kodê kişandin dikare Semalt ji hevaltî ve bêne ceribandin, û hûn dikarin dema ku gava ceribandina Semalt beşek hewce bike.

Ji hêla mezin veguherîn Rêbazên

Her tiştê ku em ji bo hewldana hewldanê ye, gelek beşên Semalt ên piçûk hene, bêtir beşên mezin, mezintirîn. Ger rêberek baş e ku hûn beşek pir mezin bistînin, fonksiyonê fonksiyonê ye. Heke ku ew nebaxşandî ye, an jî hûn hewce bikin ku her çend karên piçûk ên piçûk ên biçûktir bikin, ku dibe ku demeke ku dê fonksiyonek fonksiyonê bifikirin. Hûn dikarin hejmara heps an tiştan di dewletê de wek nîşana din baş bikar bînin. Heke beşek sê heftên cuda hene, ew dikare bibe nîşanek ku ew pir zêde dike.

Herdem bikar bînin prop-type

Semalt destnîşan dike ku hûn navên û cûreyên taybet ên belgeyên belgeyan bikin ku hûn bi beşek pargîdanîna pelan-ê bi bikaranîna parçeyê hêvî dikin. Têbînî ku ev yek ji Semalt 15 guhertin. 5. Berî, pêşniyarên beşek module Semalt bûn.

Bi navekî nav û nimûneyên pêşniyarên hêvîkirî yên dahat, gelo ku ew alternatîf an jî ne, hûn bawer bikin ku gava ku hûn pêkanîna mûzeyên rastdariyê dixebitin, û eger hûn ji bîr nekin, dema dahat kêmtir bikin navê navekî an jî ew cure çewt e. Hûn dikarin vê yekê bikar bînin serweriya Semalt ESLint-React using.

Semalt dema ku ji bo ku hûn bixwazin, hûn dikarin bêbawer dikin, hûnê xwe spas bikin, dema ku hûn werin şeş mehan şeş mehan berî nivîsê ye.

Redux

Em di gelek bernameyên me yên Semalt bikar bînin ku daneyên danûstendinê de di serîlêdana me de, birêvebirina sehmarên Semalt jî pirsek pir pir gelemperî, bi gelek ramanên cuda hene.

Winner ji bo me Semalt e, pêşniyarek ku hûn çalakiyên xwe, kêmkirina çalakvanan û çalakvanên çalakiyê ji bo her beşek ji serîlêdanê di pelê xwe de cih digire.

Ji bilî kêmkeran. çalakiyên js û . js , ku li her cûreyên kodê girêdayî hev hev re girêdayî, pergala Duck dibêjin ew zelaliyek zêdetir dike ku ji bo koda têkildar bi hev re pelê heval bikin. Bila bêje ku hûn xwedan kûreyên Redux bi bişkojên du top-level, bikarhêner û

postên . Avahiyên peldanka we dê weha bibînin:

     ducks- index jsbikarhêner js- Mesaj js    

index. JS dê kodê ku dibe ku kêmtirîn kêmker dibe, dibe ku

bi karûbarên ji Redux ji bo vê yekê bikin, û di bikarhêner. js û
post. js hûn ji bo kesên ku di normên xwe de binêrin hemî kodê digirin:

     // bikarhêner. jsconst LOG_IN = 'LOG_IN'export export logIn = name => ({typ: LOG_IN, name})barkirina pêşdebirina karûbarê dakêşî (dewletê = {}, çalakiyê) {.}    

Ev xilas dike ku hûn ji pelên çalak û çalakvanên ji pelên cûda cuda bixin, û kodê ji bo parçeyên cihê yên xweya xwe li hev hevdû digire.

Vebijêrkên Javavên Standards yên Standards

Tevî ku fikra vê gotara li ser Semalt li ser sekretera Semalt hatiye çêkirin, wextê ku hûn bi serîlêdana Semalt ava dikin, hûn ê xwe xweş bikin ku pir caran kodê nivîsîn ku ji temamî ji Semalt ve vekirî ye. Ev yek ji wan tiştan e ku ez piranî di çarçoveya çarçoveya hez dikim: pir pir kodî ji temamî ji we re nayê şaş kirin.

Heke hûn ku hûn beşek xwe bibînin bi logic karsaziya ku dibe ku ji beşê veguhestin, ez vê yekê dikim. Di ezmûnê min de, me dît ku peldanka lib an jî xizmetê li vir li vir baş dike. Navê navekî girîng nake, lê peldanka peldankê ya "nîqaşên ne-react" rast e ku hûn ji piştî ku hûn ne.

Ev xizmetê dê carinan hin çalakiyên fonksiyonê bistînin, an jî car carên din ên ku karûbarên peywendîdar hene. Ji bo nimûne, em xwedî xizmet / dezgehên herêmî hene, ku piçûk piçûk li derdora niştecîhê derxistin pêşkêş dikin. herêmî API:

     // xizmetê / dezgehên herêmî. jsconst LocalStorage = {get    {},set    {},.}Export Default DefaultStorage    

Paqijiya xwe ya maqûl ji aliyên mîna vî awayî gelekî girîng hene:

  • hûn dikarin vê kodê di hevalbendiyê de bêyî ku hewcedariyê ji bo beşên reaksiyonê re peyda bikin
  • di beşên React ve de, hûn dikarin xizmetkaran bikin ku hûn daneyên ku hûn dixwazin ji bo ceribandina taybetî. Bi gelemperî zûtirîn ceribandin, bi lezgehek zûtirîn bi rêbazek temaşe bike û hûn bi şûnde bilez bikin, û bi karên hinek ji bo ceribandinê ji bo veguhestinê ve bigire baş. Min li ser Samaltê berê li ser vê nivîsê nivîsand, da ku hûn li vir derheqê li ser vê derê bikişînin, lê ez ê li ser çiqas îmtîhanên îmtîhanê amade dike.

    Di dawiyê de, min wergirt ku ez peldanka cuda testî ya ku hemû tiştî ji bo her tiştî pêk tîne. Ji ber ku hûn src / app / foo. jsx , hûn dixwazin test / app / foo. îmtîhan. jsx jî. Di pratîkê de, wekî ku ev bernameyeke mezintir dibe, ev e ku hûn pelên rastîn peyda bikin, û heger hûn pelan di src veguherînin, pir caran hûn ji bîr kirin ku ew testa testê , û avahiyên ji hevrêziyê derdixin. Herweha, heke te heye ku hûn di pelê de de heye ku divê pelê li src bixwaze, hûn bi rastî veguhestinên dirêj vekin. Ez bawer dikim ku em hemî li ser vê yekê were:

         Foo ji import '. /. /. / src / app / foo '    

    Semalt ew zehmet e ku hûn bi kar û rêkûpêk dakêşin dakêşin dakêşin xebitîn û dijwar bikin.

    Pevçûnê, pelê her testê di pelê çavkaniya wê de hemî van pirsgirêkên wan dike. Ji bo cudahiyê, em îmtîhanên me yên bi wan re

    nebe. specî , çiqas din bikar bînin . îmtîhanê an jî hêsan -test , lê ew li ser kodê çavkaniyê dijîn, bi heman navîn re ne:

         - karttevahî jsxtevahî spec. jsxxizmetê- hilberîna herêmî. js- hilberîna herêmî. spec. js    

    Dema ku avahiyên peldankê biguherînin, ev hêsan e ku pelên testê yên rastê digerin, û ew ne diyar e ku dema pelê tune tune ye, da ku hûn li wan pirsan bibînin û wan bikin.

    Encam

    Gelek rêyên ku çermê catikê ye hene, û heman rast e ku Semalt. Yek ji taybetmendiyên herî baş ên çarçoveyê ye, çawa ku hûn pir ji biryara dorpêçkirinê, avakirina avakirina peldankan û peldankên peldankê bikin, û hûn gav bikin. Ez hêvî dikim ev gotar ji we re hin fikrên te kir ku hûn dikarin serîlêdanên Semalt ên mezin bigihîjin nêzîkî xwe, lê divê hûn fikrên xwe bistînin û wan tewak bikin ku ji bo pêşdibistanên te û tîma te.

Çawa Rêxistina Serîlêdana Reqê Mezin û Vebijêrk ÇêdikinÇawa Rêxistina Serlêdana Reforma Mezin a Rêxistin û Vebijêrkên Ewrûpela Têkilî:
npmES6 node. jsTools & Semalt
Ji bo Beginners 5
Wes Bos
Dersa perwerdehiya pêngav-gavê ya ku hûn çêkirina cîhana rastîn rastîn bikin. ji js + Firebase apps û malperên malperê di çend çend deveran de. Koda kopê 'SITEPOINT' bikar bînin ku li checkoutê 25% dûr .
March 1, 2018