Hogyan hozzunk létre egy egyszerű reakciókomponenst, amely nyomon követi az "oldal láthatósági állapotát"

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.

Kép Componentvideo
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.
  • A kép a DisplayVishibilidililsjsjswsrcdirectory címmel
    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.
  • A kép a HIS.FORCEVISILILITRTRE ÉS THIDE.FORCEVISILILIZÁSHOZ
    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.
  • Kép titlethis.state.Statle
    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.
  • Hasonló publikációk