Greg Rickaby

TL;DR https://reddit-image-viewer.vercel.app

Ostatnio głęboko nurkowałem z Reactem i Next.js. Dużą częścią tego zanurzenia, jest prostota Next.js. Dla mnie, Next.js ma idealną ilość abstrakcji… gdzieś pomiędzy Create React App a Gatsby. Nie musisz znać Webpacka ani routingu, ale nie jesteś również zamknięty w opiniotwórczym sposobie robienia rzeczy React obok Node.

Next.js po prostu wtapia się w tło, więc możesz skupić się na budowaniu komponentów i wysyłać statyczną (lub SSR) stronę internetową w mgnieniu oka.

Anyway, istnieje masa innych stron i aplikacji Reddit image, ale zawsze chciałem stworzyć własną. Oto i ona…

About

Aplikacja Reddit Image Viewer używa Next.js jako platformy, React Hooks useEffect()i useState(), polega na natywnym Fetch do pobierania danych i React Cool Image do leniwego ładowania mediów z każdego subreddita. Podpiąłem również Tailwind CSS do stylizacji kart i siatki.

Wyzwania

Były jednak pewne wyzwania, takie jak radzenie sobie z CORS, ponieważ przeglądarki internetowe stają się coraz bardziej rygorystyczne w kwestii zawartości cross-site. Na szczęście byłem w stanie użyć CORS Anywhere, aby to obejść.

Parsowanie JSON dla embedów też było trudne. Reddit pozwala na wszystkie typy osadzonych mediów, więc możliwość sprawdzenia i wyświetlenia określonych typów mediów była zdecydowanie fajnym, małym wyzwaniem, i skończyło się na zbudowaniu switch statement.

Inna wpadka? Reddit koduje bogate media, takie jak filmy, więc musiałem je zdekodować do <textarea> zanim mogłem wyrenderować znacznik.

Naprawdę podoba mi się funkcjonalność „wyszukiwania na żywo”, ale uderzanie w API za każdym razem, gdy ktoś wpisuje literę, nie działa. Użyłem innego React Hook o nazwie useDebounce(), aby zmusić pasek wyszukiwania do odczekania 1 sekundy przed wysłaniem żądania fetch.

Ale największa lekcja, jakiej nauczyłem się w tym projekcie? Jak robić inline if/else statements w komponentach React! Temat, który jest wart własnego wpisu na blogu i sprawia, że jestem bardzo podekscytowany React Suspense.

Wrap Up

W końcu, aplikacja działa całkiem dobrze. Otworzyłem już kilka problemów na Githubie dla kilku ulepszeń, które chciałbym dodać. Podsumowując, to było fajne doświadczenie edukacyjne!

Sprawdź kod na Githubie i zobacz aplikację na żywo tutaj: https://reddit-image-viewer.vercel.app

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.