InerceAJS apstrādā stāvokļa pārvaldību vienas lapas lietojumprogrammās (SPA), izmantojot unikālu pieeju, kas sajauc servera puses maršrutēšanu ar klienta puses renderēšanu, novēršot nepieciešamību pēc atsevišķas klienta puses stāvokļa pārvaldības sistēmas, kas raksturīga tradicionālās spa, kas veidota ar ietvariem, piemēram, reaģēt vai Vue. Šeit ir visaptverošs skaidrojums par to, kā inerceajs pārvalda stāvokli, saglabājot reakciju un vienmērīgas pārejas spa kontekstā:
Inertiajs galvenokārt darbojas kā klienta puses maršrutēšanas bibliotēka, kas ļauj lapu apmeklējumus, neprasot pilnu lapu pārlādēšanu. Tā vietā, lai pārlūkprogramma katrā navigācijā iegūtu pilnīgu HTML lapu, inerces pārtveršanas saites klikšķi un atnes JSON atbildes no servera. Šīs atbildes satur lapas komponenta nosaukumu kopā ar lapas stāvokļa datiem (rekvizītiem). Šī uz datiem balstīta pieeja nozīmē, ka serveris kontrolē, kāds stāvoklis vai dati tiek nosūtīti klientam katrai lapai, kuru inerce pēc tam izmanto, lai dinamiski atveidotu un atjauninātu tikai nepieciešamās interfeisa daļas, kā rezultātā rodas vienmērīga spa pieredze.
Galvenais valsts vadības mehānisms griežas ap pašreizējo "lapas objekta" turēšanu, kas ietver komponentu, lai padarītu to, kā arī rekvizīti, lai to nodotu. Serveris ģenerē šīs lapas objektu ar attiecīgā stāvokļa datiem noteiktam maršrutam. Kad navigācija notiek, inerce izpilda XHR (AJAX) pieprasījumu, nevis pilnu lapu atkārtotu ielādi. Tas saņem jauno lapas objektu, salīdzina to ar pašreizējo un atjaunina priekšējo galu, attiecīgi apmainoties ar komponentiem un rekvizītiem, ja vajadzības gadījumā nezaudē iepriekšējo stāvokli.
Stāvokļa saglabāšanai visā navigācijā vai tādos gadījumos kā formas ievades aizture, inerce nodrošina funkciju ar nosaukumu “UserEmember”. Šī lietderība ietaupa komponenta stāvokli (bieži vien veido stāvokli) pārlūkprogrammas vēstures stāvoklī, ļaujot lietotājiem pārvietoties prom un atpakaļ, nezaudējot viņu ieguldījumu. `UserEMEMBE` var izmantot jebkuram datu objektam, un, piešķirot unikālu atslēgu, inerce zina, kurš saglabātais stāvoklis atjauno, kad lietotājs pārskata šo lapu vai komponentu. Tas atdarina tikai klienta puses stāvokļa izturēšanos, bet pārvalda to, izmantojot spa navigācijas dzīves ciklu.
Runājot ar veidlapām, Inerce piedāvā uzlabotu veidlapas palīgu “USEFORM”, kas ne tikai pārvalda formas stāvokli, bet arī automātiski atceras stāvokli starp lapu apmeklējumiem, ja vien tas nav skaidri notīrīts. Tas nozīmē, ka lietotāji nezaudē veidlapas datus par navigāciju, uzlabojot UX, nepieprasot sarežģītus klienta puses stāvokļa risinājumus.
Inerce arī atbalsta arī kopīgošanu globālos datus dažādās lapās, izmantojot koplietotos rekvizītus, kas no servera nodoti pēc katra pieprasījuma. Tas ietver tādus datus kā autentifikācijas statuss, informācija par lietotāju vai zibspuldzes ziņojumiem. Šie kopīgie rekvizīti tiek automātiski apvienoti katras lapas komponenta rekvizītos, nodrošinot konsekventu, centralizētu stāvokli, kas pieejams visā lietotnē bez papildu manuālas pārvaldības.
Protokola inerce izmanto arī versijas funkciju, lai apstrādātu klientu un servera aktīvu sinhronizāciju, izvairoties no stāvokļa neatbilstības, ko izraisa novecojušie JavaScript vai CSS faili. Kad serveris atklāj versijas maiņu, tas piespiež pilnu lappušu atkārtotu ielādi, lai atiestatītu lietotnes stāvokli un ielādētu jaunākos aktīvus.
Tā kā Inerces stāvoklis ir cieši integrēts ar servera puses maršrutiem un kontrolieriem, tas veicina lietošanas modeli, kurā servera loģika nosaka datu pieejamību, un frontend patērē šo datu deklaratīvi. Līdz ar to liela daļa no valsts pārvaldības sarežģītības, kas raksturīga klientam smagajiem kūrortiem, piemēram, ar asinhronu datu atnākšanu un sinhronizāciju, tiek izkrauta uz servera puses ietvaru. Tas noved pie vienkāršota klienta koda un mazāk katlu plāksnes ap stāvokļa sinhronizāciju.
Rezumējot, inertiajs rīkojas ar stāvokli spa ar:
- JSON lapas objektu izmantošana, kas nosūtīti no servera maršrutiem, lai attēlotu pašreizējo lapas stāvokli.
- Navigācijas pārtraukšana, lai iegūtu minimālus JSON datus, nevis pilnas HTML lapas.
- Dinamiski atbilstošu klienta puses komponentu atveidošana ar to rekvizītiem katrā maršruta maiņā.
- nodrošinot “lietotājaMEMEME”, lai saglabātu komponentu stāvokli visā navigācijās, izmantojot pārlūka vēsturi.
- Specializētas formas palīgu (`useForm’) izmantošana, lai pārvaldītu un atcerētos formas stāvokli.
- Visā spa visā spa ļaujot koplietotiem servera datiem (koplietotajiem rekvizītiem) globālam, konsekventam stāvoklim.
- Aktīvu versiju pārvaldīšana, lai uzturētu klientu un serveri sinhronizācijā, saglabājot lietotņu stāvokļa integritāti.
- Biznesa un datu loģikas izkraušana uz servera pusi, samazinot klienta puses sarežģītību.