See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 12922|Vastuse: 0

[iooniline] ionic3 lehe elutsükli sündmused (konksud)

[Kopeeri link]
Postitatud 21.06.2018 10:30:06 | | | |
Minu kogemuse põhjal teavad enamik tudengeid seda mõistet. Kui sa ei tea palju, siis pead teadma, et brauser käivitab laadimissündmuse, kui veebileht on laaditud, ja tavaliselt kasutame $(document).load() meetodit windows.onload või jquery failides, et määratleda, mida veebileht peaks tegema, kui see on laaditud.



APP-s on selline sündmus rikkalikum. Paljudel juhtudel tuleb kasutajate heaks midagi ette võtta enne, kui nad lehte näevad, kõige tavalisem on andmete tõmbamine serverist; Või teha midagi, kui nad on leheküljelt lahkumas.

1. Mõista ioonilise elutsükli konksu
Ionic 3.8.0 seisuga pakub raamistik 8 konksfunktsiooni, mis käivituvad lehe elutsükli erinevatel etappidel.

1.1 ionViewDidLoad
Lehe laadimise lõpetamise päästik, siin "laadimine lõpetatud", viitab lehe olekule, kus vajalikud ressursid on laaditud, kuid pole veel lehe olekusse jõudnud (kasutaja näeb endiselt eelmist lehte).

Tuleb märkida, et see on väga ülbe konks, mida kutsutakse kogu protsessi jooksul vaid korra, st seda kutsutakse, kui sa esimest korda lehele sisened, ja pärast seda, ükskõik kuidas sa sisse ja välja lähed, on see mahajäetud ja õnnetu. Kui sa just tausta välja lülitad ja tarkvara uuesti sisse ei sisesta (samuti on okei vajutada värskenda veebilehe silumise ajal).

Seetõttu sobib see konks ühekordseks töötlemiseks, näiteks kasutajaandmete tõmbamiseks serverist ja vahemällu salvestamiseks.

1.2 ionViewWillEnter
Sõnasõnaline arusaam on hetk "Ma tulen sisse", kui lehekülg lihtsalt hakkab vahetuma. Sellel hetkel saad lehe andmeid eeltöödelda ja see konks kutsutakse iga kord.

1.3 ionViewDidEnter
Kui see konks käivitub, on kasutaja sisenenud uuele lehele (leht on aktiivne) ja seda kutsutakse iga kord.

Rääkides sellest, pean vahele segama, et ionicu konksude nimetamine on enamiku Hiina õpilaste jaoks väga sõbralik ja üks lahendab selle probleemi. Erinevalt mõnest glamuursest (valedest) raamistikust väljas on seal palju valmis, uuendatud, järgitud, destory'i jne, mäleta korra ja unusta korra. (Muidugi, see on nali, komponentide nimetamine on tihedalt seotud raamistiku töömehhanismiga)

1.4 ionViewWillLeave
Page Ready (on kohe) käivitub siis, kui kasutaja on just käivitanud tagasinupu või seotud sündmuse.

1.5 ionViewDidLeave
Kui leht on lõppenud, aktiveerub leht.

1.6 ionViewWillUnload
Käivitub, kui lehel on ressurss hävitamise äärel, kas arvad, et see konks, nagu ionViewDidLoad, aktiveerub ainult korra?

1.7 Testimine
Võtame eelmises osas loodud lehekülje ja teeme testi konksu laadimise kohta.
Eelmises osas rakendasime protsessi, kus hüppame avalehelt testlehele nuppude abil, ning nüüd lisame ülaltoodud kuus konksu TestPage'i ja jälgime nende kutsumist konsooli kaudu.

Lehekülje teema sektsiooni kood on järgmine

Pane tähele, et lisasin konstruktorisse ka testlause. Ava Serve silumine, vajuta nuppu, mine TestPage'i ja vaata, mida konsool väljastab.


Esimest korda lehel

Mine tagasi avalehele ja vaata, mida konsool väljastab.

Leheküljelt lahkumine esimest korda

Sisene ja välju TestPage uuesti ning vaata, mida konsool väljastab.

Teine sisenemine ja väljumine

Järgmised järeldused on tehtud:

  • Konstruktor käivitatakse enne, kui ionViewDidLoad
  • ionViewDidLoad käivitub ainult siis, kui sa esimest korda lehele sisened
  • ionViewWillUnload käivitub iga kord, kui lehelt lahkud


2. Lisaks on kaks kaitsekonksu

Mainisin alguses, et Ionic pakub 8 konksu, samas kui mina tutvustasin ainult 6. Esimesel kuuel konksul on ühine joon ning nende tagastusväärtused on kõik tühised, st neid kutsutakse vastaval hetkel ja nad ei anna mingit infot.

Teised kaks konksu on veidi erinevad, need on ionViewCanEnter ja ionViewCanLeave, mis suudavad tagastada boole'e.
Vaata, ma just rääkisin aegadest ja nüüd räägin modaaltegudest. Kui esimesed 6 konksu on lehe passiivne vastus kasutaja külastusele, siis nüüd on lehel teadvus, mis lubab sul tulla või minna, ah, leht on nüüd püsti!

Need kaks konksu mängivad suuremat rolli autoriteedi kontrollis ning viimasel ajal on olemas väga trendikas termin nimega Valvur, kuidas seda valvurit mõista – seda saab mõista kui kogukonna väravahoidjat, meeldivat kooliõpetajat ja vana vana aprikoosiõie hoones tuhandeid poose.

Nüüd, kui me juba teame, et see tagastab boole'i väärtuse, proovime seda. Kuna meie programmis puudub äriloogika, kasutame siin aja-API-d hindamiseks


Ligipääs lehele on blokeeritud


Samamoodi, kui soovid lehel lahkuda, siis ionViewCanLeave tagastab vale, blokeeritakse sind.


Tagasipöördumisoperatsioon peatatakse


Konsooli trükitud info

3 Kokkuvõte

Ahem, enam mitte mingit – kokkuvõtteks on Ionicul järgmised elutsükli konksud

  • ionViewDidLoad kutsutakse esimest korda, kui see tagastab void
  • ionViewWillEnter tagastab nulli iga kord, kui seda kutsutakse
  • ionViewDidEnter tagastab nulli iga kord, kui seda kutsutakse
  • ionViewWillLeave tagastab nulli iga kord, kui seda kutsutakse
  • ionViewDidLeave tagastab nulli iga kord, kui seda kutsutakse.
  • ionViewWillUnload tagastab nulli iga kord, kui seda kutsutakse
  • ionViewCanEnter tagastab boole'i iga kord, kui seda kutsutakse
  • ionViewCanLeave tagastab boole'i iga kord, kui seda kutsutakse






Eelmine:Ionic Development Androidi rakenduse praktika (3): Uudiste videote nimekiri
Järgmine:ionic3 pakkuja
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com