Eesti

Õppige, kuidas rakendada React'i progresseeruvat täiustamist, et luua veebisaite, mis on ligipääsetavad, jõudluspõhised ja vastupidavad, isegi kui JavaScript on keelatud või esialgse laadimise ajal.

React'i progresseeruv täiustamine: JavaScript-valikuliste komponentide loomine

Tänapäeva veebiarenduse maastikul on JavaScripti raamistikud nagu React kõikjal levinud. Kuigi need pakuvad võimsaid tööriistu dünaamiliste ja interaktiivsete kasutajaliideste loomiseks, võib ainuüksi JavaScriptile tuginemine põhjustada probleeme ligipääsetavuse, jõudluse ja SEO-ga. Siin tulebki appi progresseeruv täiustamine (PT). Progresseeruv täiustamine on veebiarenduse strateegia, mis seab esikohale veebisaidi põhifunktsionaalsuse ja sisu kättesaadavuse kõigile kasutajatele, olenemata nende brauseri võimekusest või JavaScripti olemasolust. React'i progresseeruv täiustamine keskendub komponentide loomisele, mis toimivad ka ilma JavaScriptita, pakkudes baaskogemust, mida seejärel täiustatakse JavaScriptiga rikkalikuma interaktiivsuse saavutamiseks.

Mis on progresseeruv täiustamine?

Progresseeruv täiustamine ei ole uus kontseptsioon. See on filosoofia, mis soovitab veebisaite ehitada kihtidena, alustades tugevast HTML-i ja CSS-i vundamendist. See vundament tagab, et sisu on ligipääsetav kõigile, sealhulgas puuetega kasutajatele, madala ribalaiusega ühenduste kasutajatele või neile, kellel on JavaScript keelatud. JavaScript lisatakse seejärel täiustuseks, et pakkuda rikkalikumat ja interaktiivsemat kogemust. Mõelge sellele kui maja ehitamisele: alustate põhistruktuurist ja lisate seejärel uhkeid funktsioone.

Progresseeruva täiustamise põhiprintsiibid:

Miks on progresseeruv täiustamine Reactis oluline

React on vaikimisi JavaScripti-mahukas raamistik. Kui Reacti rakendus renderdatakse brauseris, nõuab see tavaliselt suure hulga JavaScripti allalaadimist, parsimist ja käivitamist. See võib põhjustada mitmeid probleeme:

Progresseeruva täiustamise rakendamine Reactis lahendab need väljakutsed, pakkudes baaskogemust, mis on funktsionaalne ka ilma JavaScriptita. See mitte ainult ei paranda ligipääsetavust ja jõudlust, vaid parandab ka SEO-d, tagades, et otsingumootorid saavad sisu hõlpsalt roomata ja indekseerida.

React'i progresseeruva täiustamise tehnikad

Reactis on progresseeruva täiustamise rakendamiseks mitmeid tehnikaid:

1. Serveripoolne renderdamine (SSR)

Serveripoolne renderdamine (SSR) on tehnika, mille puhul Reacti komponendid renderdatakse serveris ja tulemuseks olev HTML saadetakse kliendile. See võimaldab brauseril sisu kohe kuvada, isegi enne JavaScripti allalaadimist ja käivitamist. SSR pakub mitmeid eeliseid:

Raamistikud nagu Next.js ja Remix muudavad SSR-i rakendamise Reactis suhteliselt lihtsaks. Nad pakuvad sisseehitatud tuge serveripoolseks renderdamiseks, marsruutimiseks ja andmete hankimiseks.

Näide Next.js-i kasutamisest:

Next.js tegeleb automaatselt SSR-iga `pages` kaustas olevate lehtede jaoks. Siin on lihtne näide:


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

Tere tulemast minu veebisaidile!

; } export default HomePage;

Kui kasutaja külastab avalehte, renderdab Next.js `HomePage` komponendi serveris ja saadab tulemuseks oleva HTML-i brauserile.

2. Staatilise saidi genereerimine (SSG)

Staatilise saidi genereerimine (SSG) on tehnika, mille puhul Reacti komponendid renderdatakse ehitamise ajal ja tulemuseks olevad HTML-failid serveeritakse otse kliendile. See on isegi kiirem kui SSR, kuna HTML on eelgenereeritud ja ei vaja igal päringul serveripoolset töötlemist.

Raamistikud nagu Gatsby ja Next.js toetavad ka SSG-d. Need võimaldavad teil ehitamise ajal oma Reacti komponentidest staatilisi HTML-faile genereerida.

Näide Next.js-i kasutamisest:

SSG kasutamiseks Next.js-is saate kasutada `getStaticProps` funktsiooni andmete hankimiseks ja nende edastamiseks oma komponendile prop'idena.


// pages/blog/[id].js

export async function getStaticProps({ params }) {
  const postId = params.id;
  // Hangi postituse andmed API-st või andmebaasist
  const post = { id: postId, title: `Postitus ${postId}`, content: `Postituse ${postId} sisu` };

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

export async function getStaticPaths() {
  // Määrake parameetri `id` võimalikud väärtused
  const paths = [
    { params: { id: '1' } },
    { params: { id: '2' } },
    { params: { id: '3' } },
  ];

  return {
    paths,
    fallback: false, // Seadke tõeseks, kui soovite lehti genereerida nõudmisel
  };
}

function BlogPost({ post }) {
  return (
    

{post.title}

{post.content}

); } export default BlogPost;

Next.js genereerib ehitamise ajal iga postituse jaoks staatilised HTML-failid.

3. Sujuv tagasiminek `

Märgend `


Seda sisu kuvatakse, kui JavaScript on lubatud.

Märgendit `

4. Tingimuslik renderdamine

Tingimuslik renderdamine võimaldab teil renderdada erinevaid komponente või sisu sõltuvalt sellest, kas JavaScript on lubatud. Saate seda kasutada kasutajaliidese järkjärguliseks täiustamiseks JavaScripti funktsioonidega, pakkudes samal ajal põhikogemust ka ilma JavaScriptita.


import { useState, useEffect } from 'react';

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

  useEffect(() => {
    // Kontrolli, kas JavaScript on lubatud. See on lihtsustatud näide.
    // Reaalses stsenaariumis võiksite kasutada robustsemat meetodit.
    setIsJavaScriptEnabled(typeof window !== 'undefined');
  }, []);

  return (
    
{isJavaScriptEnabled ? (

Seda sisu renderdatakse JavaScriptiga.

) : (

Seda sisu renderdatakse ilma JavaScriptita.

)}
); } export default MyComponent;

See näide kasutab `useState` ja `useEffect` hook'e, et kontrollida, kas JavaScript on brauseris lubatud. Selle põhjal renderdab see erinevat sisu.

5. Semantilise HTML-i kasutamine

Semantiliste HTML-elementide kasutamine on ülioluline nii ligipääsetavuse kui ka progresseeruva täiustamise jaoks. Semantilised HTML-elemendid annavad sisule tähenduse ja struktuuri, muutes selle abitehnoloogiatele ja otsingumootorite robotitele lihtsamini mõistetavaks. Näiteks `

`, `