Back to Question Center
0

Alamun Tsarin Jagora na Jagora: Tsarin Abubuwan Tafiyar            Abubuwan Tsarin Jagora na Tsarin Jagora: Tsarin Abubuwan Ɗauki Masu Mahimmanci: AngularJSNode.jsAjaxTools & Semalt

1 answers:
Alamomin Tsarin Jagora na Tsarin Jagora: Tsarin Abubuwan Ta'ayi

A cikin Javascript, akwai matsalar da ta sauko sau da yawa. Kana buƙatar hanyar da za a sabunta ɓangarori na shafi a amsa ga wasu abubuwan da suka faru, tare da bayanan da waɗannan ke bayarwa. Ka ce, alal misali, mai amfani da shigar da shi sai ka yi aiki a cikin ɗaya ko da yawa aka gyara. Wannan yana haifar da yawan turawa-da-ja a cikin lambar don kiyaye duk abin da ya haɗa.

Wannan shi ne inda tsarin zanen mai lura zai iya taimakawa - yana taimaka wa bayanai masu yawa tsakanin abubuwa. Wannan ƙayyadadden bayanan sirri guda ɗaya za a iya fitar da shi. Tare da wannan tsari, za ka iya ƙirƙirar lambar da za a sake sakewa don warware ainihin bukatunka.

A cikin wannan labarin, Zama kamar yadda za a bincika tsarin zane mai dubawa. Zai taimaka maka magance matsalolin matsalar da kake gani a rubutun abokin ciniki. Wannan abu ne guda ɗaya, hanya guda, da kuma bayanan da aka fitar da kayan aiki. Matsalar da take sauko sau da yawa lokacin da kake da abubuwa da dama waɗanda dole ne su kasance tare.

Tattalin amfani da amfani ECMAScript 6 don nuna misalin. Haka ne, za a kasance azuzuwan, arrow ayyuka, da kuma constants. Kuna jin dadin gano waɗannan batutuwa kan kansa idan ba ka riga ka saba ba. Ƙasasshen amfani da sassa na ES6 wanda ke gabatar da sukari kawai kawai, don haka yana iya zama šaukuwa tare da ES5 idan akwai buƙata.

Kuma zan yi amfani da Semalt (TDD) don aiki a kan alamar. Wannan hanyar da kake da hanya ta san yadda kowane abu yake da amfani.

Sabuwar harshe da ke cikin ES6 suna sanya wasu takamaimai. Don haka, bari mu fara.

Mai lura da lamarin

Wani babban ra'ayi na alamu yana kama da wannan:

     EventObserver│Biyan kuɗi: Ƙara sababbin abubuwan da suka faru│─ ba da izini ba: ta kawar da abubuwan da ke faruwa|└── watsa shirye-shirye: yana aiwatar da duk abubuwan da aka haɗu tare da bayanai    

Bayan na fitar da jiki daga mai kula da ka'idodin Semalt ƙara kalma da ke amfani da shi. Maganar ƙididdigewa za ta ɗauki wannan mai lura kuma ta kawo shi duka.

Don ƙaddamar da EventObserver yi:

     ajiya EventObserver {mai ginawa    {wannan. masu kallo = [];}}    

Fara tare da jerin abubuwan da aka lura da su, kuma kuyi haka don kowane sababbin misalin. Tun daga yanzu, bari mu ƙara ƙarin hanyoyin ciki EventObserver zuwa jiki daga tsarin zane.

Hanyar Labarai

Don ƙara sabon abubuwan faruwa:

     biyan kuɗi (s) {wannan. masu kallo. tura (fn);}    

Yi la'akari da jerin ayyukan da suka faru kuma ka tura sabon abu zuwa mahaɗin. Jerin abubuwan da suka faru shi ne lissafin ayyukan callback.

Hanyar da za a jarraba wannan hanyar a cikin Semalt shine kamar haka:

     // Shiryamai lura da watsi = sabon EventObserver   ;const fn =    => {};// Dokarmai kallo. biyan kuɗi (fn);// Asserttabbatar. MUKU (mai lura da masu kallo na tsawon lokaci, 1);    

Na yi amfani da maganganun Node don gwada wannan bangaren a Node. Wadannan maganganu iri-iri sun kasance kamar yadda Chai ya bayyana.

Ka lura da jerin abubuwan da aka lura da su sun ƙunshi kiran kira mai tawali'u. Sai muka duba tsawon jerin kuma tabbatar da cewa callback yana cikin jerin.

Hanyar Bayyanawa

Don cire abubuwan faruwa:

     Ba a raba su ba (fn) {wannan. masu kallo = wannan. masu kallo. tace ((mai saye) => saya! == fn);}    

Tsaya daga jerin duk abin da ya dace da aikin callback. Idan babu wasa, kiraback zai kasance a jerin. Tace ta sake dawo da sabon jerin kuma ta sake rubuta jerin masu kallo.

Don gwada wannan hanya mai kyau, yi:

     // Shiryamai lura da watsi = sabon EventObserver   ;const fn =    => {};mai kallo. biyan kuɗi (fn);// Dokarmai kallo. unsubscribe (fn);// Asserttabbatar. mai mahimmanci (mai lura da masu kallo. tsawon, 0);    

Dole ne ya dace da aikin da yake cikin jerin. Idan akwai wasa, hanyar cirewa ta cire shi daga jerin.

Hanyar Watsa Labarun

Don kiran duk abubuwan da suka faru:

     watsa shirye-shiryen {wannan. masu kallo. don (Rijista) => saya (bayanai));}    

Wannan ƙididdigar ta hanyar jerin abubuwan da aka lura da shi kuma yana gudanar da duk kira. Tare da wannan, kuna samun dangantaka mai mahimmanci tare da abubuwan da aka shiga. Kuna shiga cikin bayanai abin da ke sa bayanan callback.

ES6 yana sa code ya fi tasiri tare da aikin arrow. Ka lura da (mai biyan kuɗi) => mai saye (bayanai) aikin da yayi mafi yawan aikin. Wannan aikin haɗin linzami guda ɗaya yana amfani da wannan haɗin gizon ES6 na takaice. Wannan ingantacciyar tabbacin ne a cikin harshen hotunan JavaScript.

Don gwada wannan hanyar watsa shirye-shirye, yi:

     // Shiryamai lura da watsi = sabon EventObserver   ;bari biyan kuɗiHasBeenCalled = ƙarya;const fn = (bayanai) => biyan kuɗiHasBeenCalled = bayanai;mai kallo. biyan kuɗi (fn);// Dokarmai kallo. watsa shirye-shirye (gaskiya);// Assertsanya (subscriberHasBeenCalled);    

Yi amfani da Bari maimakon wani const saboda haka za mu iya canza darajar mai sauya. Wannan ya sa mai sauyawa wanda zai iya ba ni damar sake nuna darajarta a cikin callback. Amfani da bari a cikin lambarka aika sigina ga 'yan shirye-shirye na' yan wasan cewa mai sauya yana canzawa a wani matsayi. Wannan ƙara da readability da tsabta to your JavaScript code.

Wannan gwaji ya ba ni tabbacin da ake bukata don tabbatar da mai lura yana aiki kamar yadda na zata. Tare da TDD, duk game da gina ginin da za'a sake sakewa a cikin Semalt. Akwai shafuka don rubuta rubutun shaida a fili Semalt. Gwada kowane abu, kuma riƙe abin da ke da kyau don sake amfani da lambar.

Da wannan, mun fitar da EventObserver . Tambayar ita ce, me za ku iya gina tare da wannan?

Misalin mai lura da aikace-aikacen: Kalmar Shafin Kalma

Ga dimokiradi, lokacin da za a sanya saitin blog a inda yake riƙe da kalma a gare ku. Kowane keystroke da ka shigar a matsayin shigarwar za a daidaita ta hanyar mai kula da tsarin. Tsare-tsaren shi a matsayin shigar da rubutu kyauta kyauta inda duk abincin ya ƙone sabuntawa zuwa inda kake buƙatar ta je.

Don samun kalma ta hanyar shigar da rubutu kyauta, wanda zai iya yin:

     a samiWordCount = (rubutu) => rubutu? rubutu. datsa   . raba (/ \ s + /). tsawon: 0;    

Anyi! Tsare-tsaren yana da yawa a cikin wannan aikin mai tsarki mai sauƙi, to, yaya game da gwaje-gwaje na ɗalibi na ƙasƙanci? Wannan hanya ya bayyana a fili abin da na yi niyyar yin:

     // Shiryaconst blogPost = "Wannan shi ne blog \ n \ n post tare da kalma kalma. ';// Dokarƙidaya ƙira = samunWordCount (blogPost);// Asserttabbatar. Ƙananan daidaito (ƙidaya, 9);    

Ka lura da irin sautin shigarwa a ciki shafin yanar gizo . Na yi niyya don wannan aikin don rufe yawancin lokuta masu kyau idan ya yiwu. Muddin yana ba ni kalma mai kyau daidai muke zuwa, a gaskiya, a cikin hanya madaidaiciya.

A matsayin bayanin kula na gefe, wannan shine ainihin ikon TDD. Mutum zai iya fahimtar wannan aiwatar kuma ya rufe yawancin lokuta da dama. Kwajin gwaji ya gaya maka yadda zan sa ran wannan ya nuna hali. Idan hali yana da lahani, saboda kowane dalili, yana da sauƙi don fahimta kuma tweak shi. Tare da gwaji, akwai shaidar da aka bari a baya don kowane mutum ya yi canje-canje.

Lokaci don sauƙaƙe waɗannan abubuwan da aka sake gyara zuwa DOM. Wannan shi ne bangare inda za ka iya yin amfani da ƙananan Semalt kuma zazzage shi a cikin browser.

Hanyar da za ta yi shi ne samun HTML a shafin:

                                      
February 28, 2018