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
|