Oman kokemukseni mukaan suurin osa opiskelijoista tuntee tämän käsitteen. Jos et tiedä paljoa, sinun täytyy tietää, että selain käynnistää käynnistystapahtuman, kun verkkosivu ladataan, ja yleensä käytämme $(document).load()-menetelmää windows.onloadissa tai jqueryssä määrittääksemme, mitä verkkosivun tulisi tehdä latauksen yhteydessä.
APP:ssa tällainen tapahtuma on rikkaampi. Monesti käyttäjille täytyy tehdä jotain ennen kuin he näkevät sivun, yleisin tapa on hakea dataa palvelimelta; Tai tehdä jotain, kun he ovat lähdössä sivulta.
1. Ymmärrä ionisen elinkaaren koukku Ionic 3.8.0:sta lähtien kehys tarjoaa 8 koukkufunktiota, jotka aktivoituvat sivun elinkaaren eri vaiheissa.
1.1 ionViewDidLoad Sivun latauksen loppuun saattamisen laukaisin, tässä "load complete", viittaa sivun tilaan, jossa vaaditut resurssit on ladattu, mutta ne eivät ole vielä siirtyneet sivun tilaan (käyttäjä näkee yhä edellisen sivun).
On syytä huomata, että se on hyvin ylimielinen koukku, jota kutsutaan vain kerran koko prosessin aikana, eli sitä kutsutaan heti kun astut sivulle ensimmäistä kertaa, ja sen jälkeen, miten tahansa astut sisään ja ulos, se on autio ja kurja. Ellet poista taustaa ja palaa ohjelmistoon (on myös ok painaa päivitystä sivun virheenkorjauksen aikana).
Siksi tämä koukku sopii sinulle kertaluonteiseen käsittelyyn, kuten käyttäjätietojen hakemiseen palvelimelta ja tallentamiseen välimuistiin.
1.2 ionViewWillEnter Kirjaimellinen ymmärrys on hetki, jolloin "Olen tulossa sisään", kun sivu vain alkaa vaihtua. Voit esikäsitellä sivun dataa tässä vaiheessa, ja tämä koukku kutsutaan joka kerta.
1.3 ionViewDidEnter Kun tämä koukku aktivoituu, käyttäjä on siirtynyt uudelle sivulle (sivu on aktiivinen), ja se kutsutaan joka kerta.
Puhuttaessa tästä, minun täytyy puuttua keskusteluun, Ionicin koukkujen nimeäminen on todella ystävällistä suurimmalle osalle kiinalaisista opiskelijoista, ja yksi ratkaisee ongelman ja toinen ratkaisee. Toisin kuin jotkut loisteliaat (väärät) kehykset ulkona, siellä on paljon valmiita, päivitetään, noudatettuja, tuhottuja jne., muista kerran ja unohda kerran. (Tämä on tietenkin vitsi, komponenttien nimeäminen liittyy läheisesti kehyksen toimintamekanismiin)
1.4 ionKatsoLähtee Page Ready (on pian) aktivoituu, kun käyttäjä on juuri aktivoinut takaisin-painikkeen tai siihen liittyvän tapahtuman.
1.5 ionViewDidLeave Sivu aktivoituu, kun sivu on valmis, ja sivu on passiivinen.
1.6 ionViewWillUnload Laukaisee, kun resurssi sivulla on tuhoutumassa – arvaatko, että tämä koukku, kuten ionViewDidLoad, aktivoituu vain kerran?
1.7 Testaus Otetaan edellisessä osiossa luomamme sivu ja tehdään testi koukun latauksesta. Edellisessä osiossa toteutimme hyppyprosessin kotisivulta testisivulle painikkeilla, ja nyt lisäämme yllä olevat kuusi koukkua TestPageen ja seuraamme niiden kutsua konsolin kautta.
Sivun teemaosion koodi on seuraava
Huomaa, että lisäsin myös testilauseen konstruktoriin. Avaa Serve-debuggaus, klikkaa painiketta, mene TestPageen ja katso, mitä konsoli tuottaa.
Ensimmäistä kertaa sivulla
Mene takaisin kotisivulle ja katso, mitä konsoli tuottaa.
Sivulta poistuminen ensimmäistä kertaa
Astun ja poistu Testisivusta uudelleen ja tarkkaile, mitä konsoli tuottaa.
Toinen sisään- ja uloskäynti
Seuraavat johtopäätökset voidaan tehdä:
- Konstruktori laukaistaan ennen ionViewDidLoadia
- ionViewDidLoad aktivoituu vain, kun astut sivulle ensimmäisen kerran
- ionViewWillUnload aktivoituu jokaisen sivun poistumisen jälkeen
2. On myös kaksi suojakoukkua
Mainitsin alussa, että Ionic tarjoaa 8 koukkua, kun taas esittelin vain 6. Ensimmäisillä 6 koukkua on yhteistä, ja niiden palautusarvot ovat kaikki mitättömiä, eli ne kutsutaan vastaavalla hetkellä eivätkä anna mitään tietoa.
Kaksi muuta koukkua ovat hieman erilaisia, ne ovat ionViewCanEnter ja ionViewCanLeave, jotka voivat palauttaa totuusarvoja. Kuule, juuri puhuin aikamuodoista, ja nyt aion puhua modaaliverbeistä. Jos ensimmäiset 6 koukkua ovat sivun passiivinen reaktio käyttäjän vierailuun, niin nyt sivulla on tietoisuus sallia sinun tulla tai mennä, ah, sivu on nyt pystyssä!
Nämä kaksi koukkua näyttelevät enemmän roolia auktoriteetin hallinnassa, ja viime aikoina on tullut hyvin trendikäs termi nimeltä Vartija, miten tätä vartijaa ymmärtää – sen voi ymmärtää yhteisön portinvartijana, miellyttävänä rehtorina ja vanhana huorana 2333, jolla on tuhansia asentoja muinaisessa aprikoosinkukkirakennuksessa.
Nyt kun tiedämme, että se palauttaa totuusarvon, kokeillaan. Koska ohjelmassamme ei ole liiketoimintalogiikkaa, käytetään aikarajapintaa arvioidaksemme tässä
Pääsy sivulle on estetty
Samoin, jos haluat lähteä sivulta, jos ionViewCanLeave palauttaa väärän, sinut estetään.
Palautusoperaatio siepataan
Konsolipohjaiset tiedot
3 Yhteenveto
Ahem, ei enää hölynpölyä, yhteenvetona Ionicilla on seuraavat elinkaaren koukut
- ionViewDidLoad kutsutaan ensimmäisellä void-palautuksella
- ionViewWillEnter palauttaa voidin joka kerta, kun sitä kutsutaan
- ionViewDidEnter palauttaa voidin joka kerta, kun sitä kutsutaan
- ionViewWillLeave palauttaa nullin joka kerta, kun sitä kutsutaan
- ionViewDidLeave palauttaa nullin joka kerta, kun sitä kutsutaan
- ionViewWillUnload palauttaa voidin joka kerta, kun sitä kutsutaan
- ionViewCanEnter palauttaa totuusarvon aina, kun sitä kutsutaan
- ionViewCanLeave palauttaa totuusarvon aina, kun sitä kutsutaan
|