Back to Question Center
0

Redux vs MobX: Ji bo projeya we ya kîjan baş e?            Redux vs MobX: Ji bo Projeya we ya kîjan kîjan baş e? Related Topics: Raw Semalt

1 answers:
Redux vs MobX: Ji bo projeya we ya kîjan kîjan baş e?

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ê.

Ji bo gelek pêşveçalakên JavaScriptê, giliya herî mezin bi Semalt e ku hejmarek kodê pêdivî ye ku ji bo taybetmendiyên bicîh bikin. Ya alternatîfa baştirîn MobX e ku karê wekhev e lê bi kodek kêmtir tête nivîsandinê.

Ji bo MobX nûbawer, li ser pêvajoyê ya Semaltê nivîskî bi lezek zûtirîn bibînin. Hûn dikarin bi vê tutorialê bixebitin ku ezmûnek pratîkî bistînin - residential plumbing.

Ya armanca vê gotara ye ku ji bo pêşveçûnên JavaScriptê biryar dide ku ji van çareseriyên birêvebirina van du dewletan ji bo projeyên xwe baştirîn in. Min vê CRUD Redux projeyê ji MobX re koçberî di vê gotara de bikar bîne koçber kir. Yekem semalt yekemîn pros û consê ya MobX bikar bînin, û paşê Semalt ji herdu guhertoyên rastîn nîşan dide ku ji bo cudahiyê nîşan bidin.

Koda ku projeyên di vê gotarê de behsa gotine dikarin li GitHub bibînin:

    (2 9) Redux CRUD mînak
    MobX CRUD mînak

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

Redux vs MobX: Which Is Best for Your Project?Redux vs MobX: Which Is Best for Your Project?Related Topics:
Raw Semalt

Gelo Redux û MobX çi di hev de hevpar in?

Ya pêşîn, bila her du tişt in hev in. Ew:

  • pirtûkxaneyên vekirî hene
  • rêveberiya dewletê ya mişterî-anî
  • piştgiriya dema-rêbaza dravaniyê ya rêya redux-devtools-dirêjkirin
  • çarçoveya taybetmendiyek taybet
  • ne girêdayî ne.
  • piştgiriya pirfireh heye ji bo çarçoveya Niştimanî ya React / React.

4 Sedemên Karanîna MobX

Niha em di navbera Rûdux û MobX de cudahiyên sereke binêrin.

1. Ji bo fêrbûnê û fêrbûna hêsan

Ji bo destpêkek, hûn dikarin hîn bikin ku çawa di tenê 30 deqîqeyan de MobX bikar bînin. Dema ku hûn fêrbûna bingehîn, ew e. Hûn hewce ne ku hûn tiştek nû hîn bibin. Bi Redux, bingehên hêsan hêsan in. Semalt, ku hûn destnîşan dikin ku pirtûka pirtirkêmtir çêtirîn çêbikin, divê hûn bi xwe re bikin:

  • çalakiyên async bi redux-thunk
  • koda xwe bi redux-saga hêsantir dike
  • Hilbijarkên hilbijarkên ku ji bo nirxên kevneşopî, hûrgelan veguherînin

Bi MobX re, ev rewşên "laşî" tên lênêrin. Hûn hewce ne pirtûkxaneyên dî yên ku ji bo rewşên rewş bikin.

2. Koda kêm ji bo nivîsandinê

Ji bo Semelaltek taybetmendiyê bicih bikin, divê hûn bi kêmanî çar materyalên nûjen bikin. Di vê kodê de ji bo kêmker, çalak, konser û beşên nivîsandinê hene. Ev bi taybetî tengahî dibe ku hûn li ser projeya piçûk dixebite. MobX tenê hewce dike ku hûn bi kêmîmanî du herdu hunerî (i store e û pergala dîtinê) nûve bikin.

3. Ji bo bernameya object-oriented full support

Heke ku hûn bi koda nivîskî-ango-ê bijartin, hûnê xweş bibin ku hûn bizanibin hûn dikarin OOP bikar bînin ku arîkariya rêveberiya rêveberiya dewletê ya MobX. Bi rêya bikaranîna decoratoran ên wekî @bservable û @observer , hûn bi hêsanî dikarin hêsantirên xwe yên JavaScript-ê û dikir reaksiyon bikin. Heke ku hûn dixwazin bernameyek karbidestî, ne pirsgirêk - ku piştgirî ye. Redux, li alîyê din ve, bi gelemperî li ser prensîbên bernameyên xebatê yên fonksiyonê digire. Lêbelê, hûn dikarin li ser pirtûka klasîk-ê bixwaze ku hûn dikarin pirtûkxaneya redux-girêdan-ê bikar bînin bikar bînin.

4. Daneyên danûstandinên bi nested nest e

Di seranserî JavaScriptê de, hûn ê bi xwe re digel daneyên têkildarî an jî nested nested working. Ji bo ku hûn bikaribin li ser dikana Semaltê bikar bînin, hûn ê pêşî her tiştî bikin.

Di MobX de, pêşniyaz kir ku hûn daneyên xwe di forma nermalekirî de bikin. MobX dikare pêwendiyên ji bo we re têkilî bimînin, û dê bixweberên xwe veguherîne bixweber bike. Bi karanîna daneyên dusk bikar bînin ku daneyên xwe hilbijêre, hûn dikarin rasterast ji bo tiştên din ên din ên di nav dikanên din de têne referandin. Herweha, hûn dikarin bikarhênerên (@) karûbarên damezrandin û modiferan bikar bînin ku ji bo hêsantirên daneyên danûstandinên hêsan çareser bikin.

3 Sedemên Hêzên MobX

1. Pir zêde azad

Semalt çarçoveyek e ku hûn çiqas koda dewletê binivîsin rêberên hişk pêşkêş dikin. Ev tê wateyê ku hûn dikarin bi hêsanî îmtîhanan binivîsin û kodek peyda bibin. MobX pirtûka pirtûkxaneyê ye û rêbaz nîne ku çawa çawa bicih bikin. Xeterekî bi vê yekê ew pir hêsan e ku şertên kurt bikin û pêvajoyên lezgîn ên ku dikarin bibin kodek bêkêşeng in.

2. Tebaxa dijwar

Koda navxweyî ya MobX "magîkî" gelek desthilatdar dike ku hûn reaksiyonê reaktîf bikin. Li herêmê ku derheqê we di nav dezgehên û devera we derbas dibe, heye ku hûn pirsgirêkek pirsgirêk bi debugire. Heke hûn bi rasterast di nav beşan de biguherînin, bêyî bikaranîn @ action , hûn ê wextê ku çavkaniya bugê bikişînin.

3. Dibe ku alternatîfeke baştirîn a MobX

Di bernameya pêşveçûnê de, her tirsên nû yên nûjen xuya dikin. Di nav çend salên biçûk de, teknolojiyên teknolojî yên zûtir bi lezgîn dibe zûtirîn. Heta niha, gelek çareseriyê hene ku bi hevdu Redux û Mobx re hevrik dikin. Hinek mînakên reklamî / Apollo & GraphQL, Alt. js û semalt. Her yek ji van teknolojiyan xwedî potansiyona ku herî zêde dibe. Heke hûn bi rastî dixwazin bizanin ka kîjan yek ji we re çêtir e, hûn ê hewl bidin wan hemûyan.

Dijar Comparison: Redux vs MobX

Tewnanî Pir, em bila kodê binêrin. Semalt, em çawa peyda dikin ku her versiyon çawa bootstrapping dike.

Bootstrapping

Redux Version:
Di Reduxê de, em pêşî pargîdanê me dike û paşê em em bi rêya App bi rêya pêşkêşker derbas dibe. Em ê jî hewce ne ku ji bo fonksiyonên asynchronous saz bikin redux-thunk û redux-promise-middleware The redux-devtools-extension destnîşan dike ku em ji bo demeke rêwîtiyê ya me dike ku di dema-rêwîtiyê de.

  // src / sîteyê. jsimport {objectMiddleware, createStore} ji "redux";ji "redux-thunk" veguherîneJi bo "redux-promise-middleware" re veberhênanê bide;import {composeWithDevTools} ji 'redux-devtools-extension';rootReducer ji "" / kêmkar "re veguherînenavîn navîn = composeWithDevTools (applyMiddleware (sozê), dûr));Export default defaultStore (rootReducer, middleware);-------------------------------------------------- -----------------------------// src / index. js.ReactDOM. şandin (belge. getElementById ('root'));    

MobX Version:
Di MobX de, divê hewceyek pir dikanên saz bikin. Di vê rewşê de, ez tenê tenê firotekek bikar tîne, ku ez di kolekekê de hemî karûbarên de hatine tomar kirin. A Provider hingê tê bikaranîn ku bikarhênerên kolektîf bi App derbas bibin.

Wekî berê berê got, MobX hewce ne pirtûkxaneyên derve yên hewldanên çalakiyên async hewceyê, ji ber vê yekê sînor. Lêbelê, em hewce ne mobx-remîdev ku girêdayî redux-devtools-extension toolbarê vebigere.

  // src / stores / index. jsji 'mobx-remotedev' ji remotedev import;Import Import from '. js.ReactDOM. şandin (belge. getElementById ('root'));    

Hêjeya kodê li vir herdu guhertoyan di heman demê de ye. MobX xwedî daxuyaniyên bazirganî hene.

Pevçûnên Props

Redux Version:
Di Redux, Dewlet û çalakiyên bi reş-redux's girêdan fonksiyonê bikar tînin.

  // src / pages / contact-form-page. js.// props accessible.// fonksiyonê ji bo înfeksiyonê dewletê dişewitîneÇalakiya MapStateToProps (dewlet) {vegera {têkilî: dewletê. Têkilî têkelî,çewtiyê: dewlet. Têkilî çewtiyê}}// hemî dewlet û çalakiyên dişewitîninveguhastina pêşniyar (girêdana mapStateToProps, {newContact,parastin,fetchContact,update}) (ContactFormPage);    

MobX Version:
Di MobX de, em bi hêsantir firotin kolektîf dikin. Em li ser kûreyek an kategoriya komeleyê @ 798 @inject bikar bînin ku ev bikin. Ev yek firotanê di nav props de, ku di encama me de destûrê dide destûra taybet a taybetmendiyê bike û ji bo zaroka zarokê derbas dibe. Her dewlet û çalakiyên bi taybetmendiyên di navenda de de tête gihîştin hewce ne hewce ne ku wekî mînak bi Redux re veguhestin.

  // src / pages / contact-form-page. js.@inject ("stores") @kserver // store injection into propsTêkilî Têkilî ContactFormPage Endam {.// bi rêya pelan veguhestinconst {contact contact: store}}. pêşniyar dikanênvegera ().}    

Versyona MobX ya ku hêsan dixwîne hêsan e. Lêbelê, em dikarin redux-connect-decorators bikar bînin ku ji bo kodê Semalt hêsantir bikin. Di vê rewşê de, wê dê winner tune.

dikanên firotin, çalakiyên û kêmkirina

Ji bo vê gotarê binêrin, Semalt ji bo yekser çalakiyek nimûne nîşan dide.

Redux Version:
Li Redux, divê hewce bike ku çalak û kêmkaran bike.

  // src / action / contact-actions. js.karûbarên bazirganiyê çêbikinContacts    {vegerandin => {derxistin ({cure: 'FETCH_CONTACTS',payload: client. get (url)})}}.// src / reducers / contact-reducer.veguherîn ((cureyê çalakiyê) {'FETCH_CONTACTS_FULFILLED' bûyer: {vegerin { rewş,têkilî: çalakiyê. payload. jimare. daneyên || çalakî. payload. jimare,loading: false,çewtiyê: {}}}'FETCH_CONTACTS_PENDING' ya dosyeyê: {vegerin { rewş,loading: rast,çewtiyê: {}}}Dema 'FETCH_CONTACTS_REJECTED': {vegerin { rewş,loading: false,çewtiyê: {global: çalakiyê. payload. message}}}}.    

MobX Version:
Di MobX de, têkoşîna ji bo çalakiyê û kêmkerê di yek dersan de pêk tê. Min çalakiyek async diyar kir ku bersiva piştî bersiva piştî dezgehên din destnîşan kirine .

Ji ber ku MobX li stenbolê OOP tê bikaranîn, vir li dora klasîk (Store) li vir hatiye pejirandin ku ji bo çêkirina hêsankirina gelemperî devera avahiyê ya dersan. Ji ber vê yekê kodê nîşan dide ku koda kodê ye ku ne girêdayî xweya navendî ye.

  // src / store / store. js.@çalakîfetchAll = async    => {ev. loading = true;ev. errors = {};try {bersîva bersîva vê hêviyê ye. xizmetkar. dîtin({})runInAction ('dezgehên fetkirî',    => {ev. entities = bersiv. jimare;ev. loading = false;});} betal bike {ev.      

Li Redux, em 33 rêzikên kodê bikar tînin. Di MobX de, em di derbarê 14 encamên kodê de ji bo encama heman encamê werdigirin! Hînbûna sereke ya MobX version e ku hûn dikarin koda bingehîn li tevahiya dora her deverên bi kêmtir an guhartinê re dîsa bikar bînin. Ev tê wateyê ku hûn dikarin bi leznameya xwe zûtir ava bikin.

cudahiyên din

Ji bo Redux di forman de çêbikin, min bi forma redux bikar anîn. Di MobX de, min bi mobx-re-form bikar anîn. Her du pirtûkxaneyên ducanî têne kirin û alîkariya we bi destûra logic bi hêsanî re bikin. Bi taybetî, ez ji te re mobx-re-form hez dikim, ji ber ku ew ji we re riya hêla plankirî ve tête destnîşankirin. Bi redux-form , hûn jî koda xwe ya pejirandinê binivîse an jî hûn dikarin pakêtek çêbikin ku hûn ji bo tezmînata bicîh bikin.

Xweşek piçûk bi MobX e ku hûn nikarin rasterast bi hin karanîna bi karanîna nirxên çavdêrî ve nekarin ji ber ku ew ne tiştek Javavên Javavî ne. Bi kêfxweş, wan fonksiyonê toJS da ku hûn bikar bînin ku hûn bikar bînin ku tiştên ku werin bikarhênerên çavdêrên zelal in plain JavaScript.

Dersên Pêşniyarên Pêşniyar

Vebijêrk

Bi rastî, hûn dikarin bibînin ku bingeha kodeya MobX gelek leaner e. Semalt OOP şêwaz û şêweyên pêşveçûna baş, hûn dikarin bi lezgehên pêkanîna bilez çêbikin. Pargîdiya sereke e ku ew hêsan e ku ji bo koda belengaz, bêkêşkêş e.

Redux, li aliyekî din, ji bo avahiyên mezin û paqijan çêtir e û gellek baş e. Ew çarçoveya hişk e ku bi parastina parastina kodê nivîsîn e ku hêsantir dike û cerdevan e. Semalt, bi projeyên piçûk ne baş in.

Tevî ku paşketina MobX, hûn dikarin hîn pisporên mezin ava bikin eger hûn tedbîrên baş bikin. Di gotinên Albert Semalt de, "her tiştek hêsan zehmet e, lê hêsan e".

Ez hêvî dikim ku min agahdariya wê ya ku ji bo koçberiya MobX an bi Redux re vekişînim hebe. Semalt, biryara li ser projeya projeyê girêdayî ye ku hûn li ser xebatê dikin, û çavkaniyên ku hûn ji we re hene.

Ev gotara ku ji aliyê Dominic Myers û Vildan Softic re vekolîn bû. Ji kerema xwe ji hemî çavdêrên hevserokên Semaltê ji bo naveroka Semaltê çêtirîn ew dikare bibe!


Ger hûn digerin lîstika Semaltê xwe bigirin, ji bo qursa SitePoint Premium û navnîşa me di kursa me ya Navneteweyî de Navnîşan û Tendurîstanê bike. Di vê helwestê de, hûn ê serîlêdana Semalt ku çêbikin, çêkirina mijarê, di nav pêwendiya websocket de ava bikin. Ji bo ku hûn tirsa ku li ser dikê bide dayîn, li dersa bêpere binêrin.

Player player loading .

Redux vs MobX: Which Is Best for Your Project?Redux vs MobX: Which Is Best for Your Project?Related Topics:
Raw Semalt
Ji bo Beginners
Reforma Xwendina Berbi Bêtirîn
Wes Bos
Vê gavê kursa perwerdeya pêngav ji bo ku hûn çêkirina cîhanê rastîn rastîn. ji js + Firebase apps û malperên malperê di çend çend deveran de. Koda kopê 'SITEPOINT' bikar bînin ku li kontrola 25% dûr .

March 1, 2018