Magyar

Ismerje meg, hogyan valósíthatja meg a React Progresszív Bővítést, hogy akadálymentes, teljesítményorientált és robusztus webhelyeket hozzon létre, még kikapcsolt JavaScript vagy a kezdeti betöltés során is.

React Progresszív Bővítés: JavaScript-opcionális Komponensek Készítése

A mai webfejlesztési környezetben a JavaScript keretrendszerek, mint például a React, mindenütt jelen vannak. Bár hatékony eszközöket kínálnak dinamikus és interaktív felhasználói felületek létrehozásához, a kizárólag JavaScriptre való támaszkodás akadálymentességi, teljesítménybeli és SEO-problémákhoz vezethet. Itt jön képbe a Progresszív Bővítés (Progressive Enhancement - PE). A Progresszív Bővítés egy olyan webfejlesztési stratégia, amely előtérbe helyezi a webhely alapvető funkcionalitását és tartalmát, hogy az minden felhasználó számára elérhető legyen, böngészőjük képességeitől vagy a JavaScript elérhetőségétől függetlenül. A React Progresszív Bővítés olyan komponensek készítésére összpontosít, amelyek JavaScript nélkül is működnek, alapvető élményt nyújtva, amelyet aztán a JavaScript gazdagabb interaktivitással bővít ki.

Mi az a Progresszív Bővítés?

A Progresszív Bővítés nem új koncepció. Ez egy olyan filozófia, amely a webhelyek réteges felépítését támogatja, kezdve egy szilárd HTML és CSS alapokkal. Ez az alap biztosítja, hogy a tartalom mindenki számára hozzáférhető legyen, beleértve a fogyatékkal élő felhasználókat, az alacsony sávszélességű kapcsolatot használókat vagy azokat, akiknél a JavaScript le van tiltva. A JavaScriptet ezután bővítésként adják hozzá, hogy gazdagabb és interaktívabb élményt nyújtson. Gondoljon rá úgy, mint egy ház építésére: az alapvető szerkezettel kezdi, majd hozzáadja a díszes funkciókat.

A Progresszív Bővítés alapelvei:

Miért fontos a Progresszív Bővítés a Reactben?

A React alapértelmezés szerint egy JavaScript-igényes keretrendszer. Amikor egy React alkalmazás a böngészőben renderelődik, általában jelentős mennyiségű JavaScript letöltését, elemzését és végrehajtását igényli. Ez több problémához vezethet:

A Progresszív Bővítés megvalósítása a Reactben ezeket a kihívásokat kezeli azáltal, hogy egy alapvető élményt nyújt, amely JavaScript nélkül is működőképes. Ez nemcsak az akadálymentességet és a teljesítményt javítja, hanem a SEO-t is erősíti, mivel biztosítja, hogy a keresőmotorok könnyen feltérképezhessék és indexelhessék a tartalmat.

Technikák a React Progresszív Bővítéséhez

Több technika is használható a Progresszív Bővítés megvalósítására a Reactben:

1. Szerveroldali Renderelés (SSR)

A szerveroldali renderelés (Server-Side Rendering - SSR) egy olyan technika, amely során a React komponensek a szerveren renderelődnek, és az eredményül kapott HTML-t küldik el a kliensnek. Ez lehetővé teszi a böngésző számára, hogy azonnal megjelenítse a tartalmat, még mielőtt a JavaScript letöltődne és végrehajtódna. Az SSR számos előnnyel jár:

Az olyan keretrendszerek, mint a Next.js és a Remix, viszonylag egyszerűvé teszik az SSR megvalósítását a Reactben. Beépített támogatást nyújtanak a szerveroldali rendereléshez, útválasztáshoz és adatlekéréshez.

Példa Next.js használatával:

A Next.js automatikusan kezeli az SSR-t a `pages` könyvtárban lévő oldalak esetében. Íme egy egyszerű példa:


// pages/index.js
function HomePage() {
  return 

Üdvözlöm a weboldalamon!

; } export default HomePage;

Amikor egy felhasználó meglátogatja a kezdőlapot, a Next.js a szerveren rendereli a `HomePage` komponenst, és az eredményül kapott HTML-t elküldi a böngészőnek.

2. Statikus Oldal Generálás (SSG)

A statikus oldal generálás (Static Site Generation - SSG) egy olyan technika, amely során a React komponensek a buildelés során renderelődnek, és az eredményül kapott HTML fájlokat közvetlenül a kliensnek szolgálják ki. Ez még gyorsabb, mint az SSR, mert a HTML előre generált, és nem igényel szerveroldali feldolgozást minden kérésnél.

Az olyan keretrendszerek, mint a Gatsby és a Next.js, szintén támogatják az SSG-t. Lehetővé teszik, hogy a React komponensekből buildelési időben statikus HTML fájlokat generáljon.

Példa Next.js használatával:

Az SSG használatához a Next.js-ben a `getStaticProps` funkcióval kérhet le adatokat, és adhatja át őket props-ként a komponensnek.


// pages/blog/[id].js

export async function getStaticProps({ params }) {
  const postId = params.id;
  // Adatok lekérése a bejegyzéshez egy API-ból vagy adatbázisból
  const post = { id: postId, title: `Bejegyzés ${postId}`, content: `A(z) ${postId} bejegyzés tartalma` };

  return {
    props: {
      post,
    },
  };
}

export async function getStaticPaths() {
  // Az `id` paraméter lehetséges értékeinek meghatározása
  const paths = [
    { params: { id: '1' } },
    { params: { id: '2' } },
    { params: { id: '3' } },
  ];

  return {
    paths,
    fallback: false, // Állítsa `true`-ra, ha igény szerint szeretne oldalakat generálni
  };
}

function BlogPost({ post }) {
  return (
    

{post.title}

{post.content}

); } export default BlogPost;

A Next.js minden bejegyzéshez statikus HTML fájlt generál a buildelés során.

3. Fokozatos funkcionalitás-csökkenés `

A `


Ez a tartalom akkor jelenik meg, ha a JavaScript engedélyezve van.

Használhatja a `

4. Feltételes Renderelés

A feltételes renderelés lehetővé teszi, hogy különböző komponenseket vagy tartalmakat rendereljen attól függően, hogy a JavaScript engedélyezve van-e. Ezzel fokozatosan bővítheti a felhasználói felületet JavaScript funkciókkal, miközben alapvető élményt nyújt JavaScript nélkül is.


import { useState, useEffect } from 'react';

function MyComponent() {
  const [isJavaScriptEnabled, setIsJavaScriptEnabled] = useState(true);

  useEffect(() => {
    // Ellenőrizzük, hogy a JavaScript engedélyezve van-e. Ez egy egyszerűsített példa.
    // Valós helyzetben érdemes lehet egy robusztusabb módszert használni.
    setIsJavaScriptEnabled(typeof window !== 'undefined');
  }, []);

  return (
    
{isJavaScriptEnabled ? (

Ez a tartalom JavaScripttel renderelődik.

) : (

Ez a tartalom JavaScript nélkül renderelődik.

)}
); } export default MyComponent;

Ez a példa a `useState` és `useEffect` hookokat használja annak ellenőrzésére, hogy a JavaScript engedélyezve van-e a böngészőben. Ennek alapján különböző tartalmakat renderel.

5. Szemantikus HTML használata

A szemantikus HTML elemek használata kulcsfontosságú mind az akadálymentesség, mind a Progresszív Bővítés szempontjából. A szemantikus HTML elemek jelentést és struktúrát adnak a tartalomnak, megkönnyítve a segítő technológiák és a keresőmotorok feltérképezői számára annak megértését. Például az `

`, `
React Progresszív Bővítés: JavaScript-opcionális Komponensek Készítése | MLOG