Etter min erfaring kjenner de fleste studenter dette konseptet. Hvis du ikke vet mye, må du vite at nettleseren vil utløse en onload-hendelse når en nettside lastes inn, og vi bruker vanligvis $(document).load()-metoden i window.onload eller jquery for å definere hva en nettside skal gjøre når den lastes inn.
I en APP er denne typen arrangement rikere. Mange ganger må du gjøre noe for brukerne før de ser siden, det vanligste er å hente data fra serveren; Eller gjør noe når de er i ferd med å forlate en side.
1. Forstå den ioniske livssykluskroken Fra og med Ionic 3.8.0 tilbyr rammeverket 8 hook-funksjoner som utløses på ulike stadier av sidelivssyklusen.
1.1 ionViewDidLoad Triggeren for sideinnlastingsfullføring, her refererer «last fullført» til tilstanden til siden der de nødvendige ressursene er lastet inn, men ennå ikke har gått inn i sidens tilstand (brukeren ser fortsatt forrige side).
Det bør bemerkes at det er en svært arrogant krok, som bare vil bli kalt én gang i hele prosessen, det vil si at den blir kalt når du går inn på siden for første gang, og etter det, uansett hvordan du går inn og ut, vil den være øde og elendig. Med mindre du slår av bakgrunnen og går inn i programvaren på nytt (det er også greit å trykke på oppdater mens du feilsøker nettsiden).
Derfor er denne kroken egnet for deg til å utføre engangsprosesser, som å hente brukerdata fra serveren og lagre dem i cachen.
1.2 ionViewWillEnter Den bokstavelige forståelsen er øyeblikket «jeg kommer inn», når siden bare begynner å bytte. Du kan forhåndsbehandle sidens data på dette tidspunktet, og denne hooken vil bli kalt hver gang.
1.3 ionViewDidEnter Når denne kroken utløses, har brukeren lagt inn en ny side (siden er aktiv), og den vil bli kalt hver gang.
Når vi snakker om dette, må jeg si at Ionics navngivning av kroker er veldig vennlig for flertallet av kinesiske studenter, og én vil og én LØSTE problemet. I motsetning til noen glamorøse (feil) rammeverk utenfor, finnes det mange klare, oppdaterte, overholdte, destory, osv., huske én gang og glemme én gang. (Selvfølgelig er dette en spøk, navngivningen av komponentene er nært knyttet til driftsmekanismen i rammeverket)
1.4 ionViewWillLeave Page Ready (er i ferd med å gjøre det) utløses når brukeren nettopp har aktivert tilbakeknappen eller en relatert hendelse.
1,5 ionViewDidLeave Utløst når siden er ferdig, er siden inaktiv.
1,6 ionViewWillUnload Triggere når en ressurs på en side er i ferd med å bli ødelagt, ville du tro at denne kroken, som ionViewDidLoad, bare vil bli utløst én gang?
1.7 Testing La oss ta siden vi laget i forrige seksjon og teste hvordan kroken lastes. I forrige avsnitt implementerte vi prosessen med å hoppe fra HomePage til TestPage ved hjelp av knapper, og nå legger vi til de seks hookene ovenfor til TestPage og observerer deres påkalling gjennom konsollen.
Seksjonskoden for sidetemaet er som følger
Merk at jeg også la til en testsetning i konstruktøren. Åpne Serve-feilsøking, klikk på knappen, gå til TestPage, og observer hva konsollen leverer.
Første gang på siden
Gå tilbake til startsiden og se hva konsollen sender ut.
Å forlate siden for første gang
Gå inn og ut av TestPage igjen og observer hva konsollen sender ut.
Andre inn- og utgang
Følgende konklusjoner kan trekkes:
- Konstruktøren avfyres før ionViewDidLoad
- ionViewDidLoad aktiveres bare når du først går inn på siden
- ionViewWillUnload utløses hver gang du forlater siden
2. Det finnes også to guard hooks
Jeg nevnte i begynnelsen at Ionic tilbyr 8 kroker, mens jeg bare introduserte 6. De første 6 hookene har en felles egenskap, og returverdiene deres er alle void, det vil si at de kalles på tilsvarende tidspunkt og ikke returnerer noen informasjon.
De to andre krokene er litt forskjellige, de er ionViewCanEnter og ionViewCanLeave, som kan returnere boolske. Se, jeg snakket nettopp om tider, og nå skal jeg snakke om modale verb. Hvis de første 6 krokene er en passiv respons fra siden på brukerens besøk, så har siden nå bevisstheten til å la deg komme eller la deg gå, ah, siden har stått oppe fra nå av!
Disse to krokene spiller en større rolle i autoritetskontroll, og nylig finnes det et veldig trendy begrep kalt Vakt, hvordan forstå denne vakten, du kan forstå den som portvokter i samfunnet, den vennlige rektoren, og den gamle trappen 2333 med tusenvis av positurer i den gamle aprikosblomstbygningen.
Nå som vi allerede vet at den returnerer en boolsk verdi, la oss prøve. Siden det ikke finnes noen forretningslogikk i programmet vårt, la oss bruke et tids-API for å vurdere her
Tilgangen til siden er blokkert
På samme måte, hvis du vil la være på en side, hvis ionViewCanLeave returnerer false, vil du bli blokkert.
Returoperasjonen blir avlyttet
Konsolltrykt informasjon
3 Sammendrag
Ahem, ikke mer tull, for å oppsummere har Ionic følgende livssykluskroker
- ionViewDidLoad kalles første gang for å returnere void
- ionViewWillEnter returnerer void hver gang den kalles
- ionViewDidEnter returnerer void hver gang den kalles
- ionViewWillLeave returnerer ugyldig hver gang den kalles
- ionViewDidLeave returnerer void hver gang den kalles
- ionViewWillUnload returnerer void hver gang den kalles
- ionViewCanEnter returnerer boolsk hver gang den kalles
- ionViewCanLeave returnerer boolsk hver gang den kalles
|