Din experiența mea, majoritatea studenților cunosc acest concept. Dacă nu știi prea multe, atunci trebuie să știi că browserul va declanșa un eveniment onload când o pagină web este încărcată, iar noi de obicei folosim metoda $(document).load() în windows.onload sau jquery pentru a defini ce ar trebui să facă o pagină web când este încărcată.
Într-o aplicație, acest tip de eveniment este mai bogat. De multe ori, trebuie să faci ceva pentru utilizatori înainte să vadă pagina, cel mai frecvent este extragerea datelor de pe server; Sau să facă ceva când sunt pe punctul de a părăsi o pagină.
1. Înțelegerea cârligului ionic al ciclului de viață Începând cu Ionic 3.8.0, cadrul oferă 8 funcții hook care sunt declanșate în diferite etape ale ciclului de viață al paginii.
1.1 ionViewDidLoad Declanșatorul completării încărcării paginii, aici "încărcare completă" se referă la starea paginii în care resursele necesare au fost încărcate, dar nu au intrat încă în starea paginii (utilizatorul încă vede pagina anterioară).
Trebuie menționat că este un cârlig foarte arogant, care va fi chemat o singură dată pe tot parcursul procesului, adică este chemat când intri pentru prima dată pe pagină și după aceea, indiferent cum intri și ieși, va fi pustiu și nefericit. Cu excepția cazului în care îi oprești fundalul și reintri în software (este în regulă să apeși refresh în timp ce depanezi pagina web).
Prin urmare, acest hook este potrivit pentru a face o procesare unică, cum ar fi extragerea datelor utilizatorului de pe server și stocarea lor în cache.
1.2 ionViewWillEnter Înțelegerea literală este momentul în care "vin", când pagina începe pur și simplu să se schimbe. Poți preprocesa datele paginii în acest moment, iar acest hook va fi apelat de fiecare dată.
1.3 ionViewDidEnter Când acest hook este declanșat, utilizatorul a intrat într-o pagină nouă (pagina este activă) și aceasta va fi apelată de fiecare dată.
Apropo de asta, trebuie să intervin: denumirea hook-urilor de către ionic este foarte prietenoasă pentru majoritatea studenților chinezi, iar unul va rezolva problema. Spre deosebire de unele cadre glamuroase (greșite) de afară, există o mulțime de pregătite, actualizare, conforme, destory, etc., îți amintești o dată și uiți o dată. (Desigur, este o glumă, denumirea componentelor este strâns legată de mecanismul de funcționare al cadrului)
1.4 ionViewWillLeave Page Ready (este pe cale să se declanșeze) este declanșat când utilizatorul tocmai a declanșat butonul înapoi sau evenimentul conex.
1.5 ionViewDidLeave Se declanșează când pagina s-a terminat, pagina devine inactivă.
1.6 ionViewWillUnload Se declanșează când o resursă dintr-o pagină este pe punctul de a fi distrusă, ai ghici că acest hook, la fel ca ionViewDidLoad, va fi declanșat o singură dată?
1.7 Testare Să luăm pagina creată în secțiunea anterioară și să testăm încărcarea cârligului. În secțiunea anterioară, am implementat procesul de a sări de la HomePage la TestPage folosind butoane, iar acum adăugăm cele șase hook-uri de mai sus la TestPage și observăm invocarea lor prin consolă.
Codul secțiunii temei paginii este următorul
Rețineți că am adăugat și o instrucțiune de test la constructor. Deschide depanarea serviciului, apasă butonul, mergi la TestPage și observă ce oferă consola.
Prima dată pe pagină
Întoarce-te la pagina principală și observă ce oferă consola.
Părăsirea paginii pentru prima dată
Intră și ieși din nou din pagina de test și observă ce afișează consola.
A doua intrare și ieșire
Se pot trage următoarele concluzii:
- Constructorul este pornit înainte de ionViewDidLoad
- ionViewDidLoad pornește doar când intri prima dată pe pagină
- ionViewWillUnload este declanșat de fiecare dată când părăsești pagina
2. Există și două cârlige de protecție
Am menționat la început că ionic oferă 8 cârlige, în timp ce eu am introdus doar 6. Primele 6 cârlige au o componentă comună, iar valorile lor de returnare sunt toate nule, adică sunt chemate în momentul corespunzător și nu returnează nicio informație.
Celelalte două cârlige sunt puțin diferite, sunt ionViewCanEnter și ionViewCanLeave, care pot returna booleani. Uite, tocmai am vorbit despre timpuri verbale, iar acum o să vorbesc despre verbele modale. Dacă primele 6 cârlige sunt un răspuns pasiv al paginii la vizita utilizatorului, atunci acum, pagina are conștiința să-ți permită să vii sau să pleci, ah, pagina s-a ridicat de acum înainte!
Aceste două cârlige joacă un rol mai important în controlul autorității, iar recent există un termen foarte la modă numit Paznic, cum să înțelegi acest paznic, îl poți înțelege ca pe portarul comunității, directorul amabil și bătrânul ocoliu 2333 cu mii de posturi în vechea clădire cu flori de caise.
Acum că știm deja că returnează o valoare booleană, hai să încercăm. Pentru că nu există logică de business în programul nostru, să folosim un API temporal pentru a judeca aici
Accesul la pagină este blocat
În mod similar, dacă vrei să lași o pagină, dacă ionViewCanLeave returnează fals, vei fi blocat.
Operațiunea de întoarcere este interceptată
Informații tipărite pe consolă
3 Rezumat
Ahem, gata cu prostiile, ca să rezum, Ionic are următoarele cârlige de ciclu de viață
- ionViewDidLoad este numit prima dată pentru a returna void
- ionViewWillEnter returnează "void" de fiecare dată când este apelat
- ionViewDidEnter returnează void de fiecare dată când este apelat
- ionViewWillLeave returnează anulare de fiecare dată când este chemat
- ionViewDidLeave returnează void de fiecare dată când este chemat
- ionViewWillUnload returnează void de fiecare dată când este apelat
- ionViewCanEnter returnează boolean de fiecare dată când este apelat
- ionViewCanLeave returnează boolean de fiecare dată când este apelat
|