Languages
[Edit]
PL

React - asynchroniczne ┼éadowanie obrazów

0 points
Created by:
FryerTuck
319

W tym kr├│tkim artykule chcieliby┼Ťmy pokaza─ç, jak ┼éadowa─ç obrazy w trybie asynchronicznym w Reakcie.

W trybie asynchronicznym┬á┼éadowanie obraz├│w nast─Öpuje po za┼éadowaniu wszystkich zasob├│w, co nie blokuje synchronicznego┬á┼éadowania innych zasob├│w. Takie podej┼Ťcie przyspiesza ┼éadowanie strony, dziel─ůc proces ┼éadowania na dwa┬áetapy:

  • ┼éadowanie strony (bez obraz├│w asynchronicznych) - dzi─Öki czemu szybciej widzimy wszystkie niezb─Ödne rzeczy we w┼éa┼Ťciwej kolejno┼Ťci,
  • ┼éadowanie obraz├│w asynchronicznych - obrazy zostan─ů za┼éadowane dopiero, gdy strona b─Ödzie gotowa.
Dowód asynchronicznego wczytywania obrazów w Google Chrome DevTools (ładowane po niebieskich i czerwonych liniach)
Dowód asynchronicznego wczytywania obrazów w Google Chrome DevTools (ładowane po niebieskich i czerwonych liniach)

Praktyczny przykład:

// ONLINE-RUNNER:browser;

//import React from 'react';
//import ReactDOM from 'react-dom';

const AsyncImage = (props) => {
  	const [loadedSrc, setLoadedSrc] = React.useState(null);
  	React.useEffect(() => {
      	setLoadedSrc(null);
      	if (props.src) {
          	const handleLoad = () => {
            	setLoadedSrc(props.src);
            };
            const image = new Image();
            image.addEventListener('load', handleLoad);
          	image.src = props.src;
            return () => {
              	image.removeEventListener('load', handleLoad);
            };
        }
    }, [props.src]);
  	if (loadedSrc === props.src) {
        return (
            <img {...props} />
        );
    }
  	return null;
};

const App = () => {
    return (
      <div>
        <AsyncImage src="https://dirask.com/static/bucket/1574890428058-BZOQxN2D3p--image.png" />
        <p>Tutaj jaki┼Ť tekst...</p>
        <AsyncImage src="https://dirask.com/static/bucket/1590005168287-pPLQqVWYa9--image.png" />
        <p>Tutaj jaki┼Ť tekst...</p>
        <AsyncImage src="https://dirask.com/static/bucket/1590005138496-MWXQzxrDw4--image.png" />
        <p>Tutaj jaki┼Ť tekst...</p>
        <AsyncImage src="https://dirask.com/static/bucket/1590005318053-3nbAR5nDEZ--image.png" />
      </div>
    );
};

const root = document.querySelector('#root');
ReactDOM.render(<App />, root);

Zobacz r├│wnie┼╝

ReactJS (PL)

React - asynchroniczne ┼éadowanie obrazów
Native Advertising
­čÜÇ
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

ÔŁĄ´ŞĆ­čĺ╗ ­čÖé

Join