Webes alkalmazás létrehozásakor olyan helyzetekkel találkozhat, ha nyomon kell nyomon követnie a láthatósági állapotot. Ez megtörténik, hogy meg kell ismételnie vagy felfüggesztenie az animáció vagy a videó hatását, csökkenti a felhasználó viselkedésének intenzitását vagy nyomon követését az Analytics számára. Első pillantásra ez a funkció meglehetősen egyszerűnek tűnik eladásra, de ez nem egészen így van. Felhasználói tevékenység nyomon követése - meglehetősen bonyolult folyamat.
Van egy oldalnézet API, amely a legtöbb esetben nagyszerűen működik, de nem kezeli a böngésző lap minden lehetséges láthatatlanságát. Az oldal láthatóságú API küld egy esemény láthatóságcsökkentést, hogy a hallgatók tudják, hogy az oldal láthatósági állapota megváltozott. Nem indít egy eseményt bizonyos esetekben, ha az ablak vagy a megfelelő böngésző lap el van rejtve a látványból. Néhány ilyen eset kezelésére a fókusz és az elmosódott események kombinációját mind a dokumentum, mind az ablakban kell használni.
Tehát ebből a cikkből megtudhatja, hogyan lehet létrehozni egy egyszerű reaktor-összetevőt, amely nyomon követi az oldal láthatósági állapotát.
Lépések
Reakció-alkalmazás létrehozásához a kódok és a Create-React-App létrehozása is használható). Létrehozunk egy kis alkalmazást, amelyben a HTML5 elem videó csak akkor fog lejátszani, ha a böngésző fül fókuszban van, vagy aktív, különben automatikusan felfüggesztésre kerül. Videó Az alkalmazási funkciók tesztelésének megkönnyítésére szolgál.
egy. Kezdje a legegyszerűbb rész létrehozásával, azaz a komponens videó. Ez egy egyszerű komponens lesz a logikai aktív és string SRC paraméterekkel, amelyek a videó URL-jét tartalmazzák. Ha az aktív kellékek igazak, a videó lejátszásra kerül. Ellenkező esetben leáll.
2. Hozzon létre egy egyszerű reaktív osztályt és elem videót az SRC használatával továbbított URL forráskódja. Itt van egy új REF API, hogy kapcsolatokat csatoljon a DOM-csomóponthoz. A VIDEO-t az Avto visszajátszáskor állíthatja be, feltételezve, hogy amikor elindítjuk az alkalmazást, az oldal aktív lesz.
A Safari nem játssza le automatikusan multimédiás elemeket felhasználói interakció nélkül. Összehasonlítás A módszer nagyon kényelmes, ha az összetevő tulajdonságváltozást változik. Ezért ezt a módszert itt használják a videó lejátszására és felfüggesztésére a jelenlegi érték alapján.Előnyök.Aktív.3. Hozzon létre egy funkciót. A böngésző előtagok közötti különbségek nem mindig kényelmesek bizonyos API-k használatához, és egyikük. Egy egyszerű segédprogramot hozunk létre, amely kezelni fogja ezeket a különbségeket, és egyetlen API-t ad meg a felhasználó böngészőjének alapján. Hozzon létre és exportáljon ezt a funkciót a PageBribilibilisutiutiutils-ről.Js in src könyvtárban.
Ebben a funkcióban az IF-más utasítást a böngészőre vonatkozó API interfész visszaküldéséhez használja. Látható, hogy hozzáadjuk az MS előtagot az Internet Explorer és a Webkit előtaghoz a Webkit böngészők számára. A kívánt API-t rejtett és láthatóságváltozókban tároljuk, és egy egyszerű objektumként adjuk vissza őket. Végül exportáljuk a funkciót.4. Navigáljon a fő komponenshez. Minden oldal láthatósági nyomkövetési logikát kapunk a React Class osztályban a rendereljárások sablon segítségével. Hozzon létre egy láthatóságú osztályt. Ez a komponens kezelni fogja és törli az összes eseményt a DOM-hallgatók alapján.
öt. Indítsa el egy korábban létrehozott segédfunkció importálását, és hívja meg, hogy megkapja a megfelelő böngésző API-kat. Ezután hozzon létre egy reaktkomponenst, és inicializálja az állapotát egy ISvisszerűen telepítve. Ez a Boolean mező felelős az oldal láthatóságának állapotáért.
6. A ComponentDIdMount-ban adja meg az Esemény-hallgatót a Visiblechange dokumentumhoz ezzel a módszerrel.HandvisibilityChange, mint a kezelő. Adjon hozzá eseményhallgatót a FOCUSE és a BLUR ESEMENTS dokumentumokhoz, valamint az ablakelemhez. Ezúttal telepítjük ezt.ForceVisibilityTrue és ez.ForceVisibilityFalse, mint az események fókuszálása és elmosódása.
7. Ezután hozza létre a HaveViblechange módszert, amely a Forceflag argumentumot tartalmazza. A ForceFlag érv fogják használni annak meghatározására, hogy az eljárás az okozza, hogy az esemény vagy VisibilityChange Focus és a Blur események. Ez azért van, mert a ForceVisibilityTrue és ForceVisibilityFalse módszerek nem csinál semmit, csak a handlevisibilitychange eljárás egy igaz és hamis értéket Forceflag.
nyolc. A HANDVISVIFILIZULICANCE módszer belsejében először ellenőrizze, hogy az erőfüvek logikai argumentumának értéke (ha azt a VisibleChange Event Handler-ből hívják, a továbbított argumentum szinteticevent objektum lesz).
Ha a boolean, ellenőrizze, igaz vagy hamis. Ha az érték igaz, hívja a Se Se Seetvisibility módszert igaz vagy hívja a hamis módszert. A SE SEALVISIBLIZÁLÁSI MÓDSZER Ez ezt használja.Állítsa be az összetevőállapotban az elviselhető érték frissítésének módját.Ha a forceflag nem boolean, ellenőrizze a rejtett attribútum értékét a dokumentumban, és hívja fel a Se Seetvisibility módszert. Ez befejezi az oldal állapotának nyomon követésének logikáját.kilenc. Készítsen egy többszörös komponenst. Ehhez használja a rendereljárás mintát. Azaz ahelyett, hogy a renderelési módszerből álló komponenst rendeznénk, ezt hívjuk.Előnyök.Gyermekek, mint egy funkcióval.Állapot.isviszible.
10. Telepítse a React alkalmazást a DOM-ban az indexfájlban.JS. Importáljon két reagálási láthatóságú és videoalkatrészeket, és hozzon létre egy alkalmazáskomponenst azáltal, hogy összekapcsolja őket. A funkciót a VisibleManager komponens gyermekelemként továbbítjuk, amely az elviselhető, és továbbítja azt a kimeneten lévő videokomponensnek. Mi is továbbítja a video URL-t SRC-ként a video komponenshez. Ez az, hogy a Visiybyager komponens a rendereljárásokon alapul. Végül a reagálási módszert használjuk.Render a dom-csomópontra vonatkozó alkalmazások megjelenítéséhez "root" azonosítóval.