Projekt aplikacji SaaS
8 godz. 8 min · Next.js · Full-stack i Programowanie
Daniel NoworytaFull stack DeveloperNaucz się tworzyć bezpieczne systemy uwierzytelniania i autoryzacji, korzystając z Clerk. Pokażę Ci, jak to robić krok po kroku, aby Twoje aplikacje były bezpieczne i profesjonalne.
Zrozumiesz, jak skutecznie i bezboleśnie połączyć swoją aplikację Next.js z bazą danych PostgreSQL na DigitalOcean. Pokażę Ci, jak używać Prismy, aby ułatwić ten proces.
Dowiesz się, jak zarządzać routingiem i nawigacją w swojej aplikacji, aby użytkownicy mogli łatwo i intuicyjnie poruszać się po Twojej stronie.
Pokażę Ci, jak z łatwością wdrożyć swoją aplikację na Vercel, jednym z najpopularniejszych środowisk hostingowych dla aplikacji Next.js.
Nauczysz się zarządzać stanem aplikacji i jak wykorzystać server actions w praktyce, co pozwoli Ci na tworzenie bardziej zaawansowanych i dynamicznych funkcji.
Ten kurs jest dla osób, które już mają pewne doświadczenie z JavaScript i chcą zgłębić swoje zrozumienie Next.js. Zakładamy, że znasz podstawy TypeScript, TailwindCSS, ale nie potrzebujesz doświadczenia z Next.js - wszystko wyjaśnię Ci od podstaw!
Jeżeli chodzi o routing w aplikacji Next
czy jest okej, to nie chcę Cię zanudzać teorią.
Tak naprawdę zachęcam Cię serdecznie do tego, żebyś przeczytała sobie
dokumentację, którą masz dostępną na stronie.
I tutaj bardzo ważne, żebyś używał tej opcji using absolute.
To już jest opcja stabilna.
Generalnie rzecz biorąc jest tutaj wszystko świetnie pokazane na grafikach, w
jaki sposób renderowane są strony, w jaki sposób działa Fail Convention.
Generalnie routing działa na zasadzie plików i folderów.
Hierarchia komponentów, którą mamy tutaj.
Twórcy tego frameworka bardzo fajnie to
wszystko przygotowali, żeby pokazać Ci w jaki sposób to wszystko działa pod spodem.
Generalnie rzecz biorąc najważniejsze
rzeczy, o których musisz wiedzieć to to, że App Directory to jest folder, w którym
dzieje się tak naprawdę większość naszej pracy.
I moim zdaniem jest to najlepszy ficzer w next, że jest.
Mamy nasz App Directory, w którym
zaczniemy za chwilkę stopować nasz routing w aplikacji.
Jeżeli chodzi o Page Six to to jest to co masz tutaj i to odpowiada za
wyświetlenie i ucina naszym ekranie wyświetlanie części.
Jeżeli chodzi o layout to jest część wspólna, która będzie
używana dla wszystkich podstronach zaczynając od roota.
Bo jeżeli chodzi o to co widzisz tutaj mamy z layout i page.
To jest tak naprawdę index Agreement znany ze starej strony.
Czyli to jest lutowy adres naszej aplikacji.
Jeżeli ktoś odwiedza naszą aplikację na
adresie to ląduje właśnie na tej stronie Page sex.
Tutaj jest pierwsza strona na której się
ląduje tak naprawdę w aplikacji Next Dzieje grzbietowej.
Wszystko bazuje na nazwach plików i folderów.
Jeżeli chcesz stronę w aplikacji, plik musi nazywać się właśnie php X.
Jeśli chcesz zrobić inną stronę pod tym samym adresem URL, nie ma to większego
sensu tak naprawdę i zawsze powinieneś mieć jeden page root w aplikacji.
Jeżeli chcesz zrobić strony artykuł w swojej aplikacji, musimy stworzyć sobie
folder o nazwie odpowiadającej końcówce URL articles.
Czyli jeżeli chcielibyśmy w naszej
aplikacji mieć articles to tutaj articles musielibyśmy sobie
stworzyć folder page i w środku w tym folderze.
To wtedy moglibyśmy lądować na stronie
Nasza domena localhost 3000 slash articles.
Wtedy odpalił by się nam ten page, który jest właśnie w tym folderze.
Jeżeli chcesz robić stronę podstronę to np.
poprzez dodanie nowego folderu w articles możesz nazwać dodać sobie folder np.
React czy.
I pod tym folderem stworzyć page, czyli będzie slash articles slash ri.
Jeżeli chodzi o dynamiczne adresy URL to
tak naprawdę najlepiej chyba to pokazać na przykładzie bloga.
Jeżeli chcielibyśmy mieć slash blog, czyli tworzyli byśmy tutaj
podstronę blog i tutaj w środku był plik page ts x to byłby plik
slash slash blog na którym lądowali byśmy w naszej aplikacji.
Jeżeli chodzi o dynamiczną, dynamiczną
i jeżeli chcielibyśmy dynamicznie odczytywać slug czy adres tej strony to
musielibyśmy zamienić tą stronę, zrobić sobie
file i zamiast tego Page'a to musielibyśmy wpisać na przykład slug
i tu w tym przypadku byłby to dynamiczny parametry przekazywane do naszej strony,
które moglibyśmy wykorzystywać wtedy w adresie slash blog.
Wszystko co było tutaj pod tym wszystkim
to byłoby traktowane jako slack, co byśmy mogli wykorzystać w naszej aplikacji.
Generalnie.
Routing w next pomaga Ci konfigurować to dowolnie.
Możesz np. zrobić tzw.
cache page przez priv.
Tutaj to jest też dosyć przydatne czasami jeżeli masz więcej jakby.
Jeżeli zrobisz tutaj
ten lag po trzech kropelkach, czyli użyjemy spread operatora znanego nam z
JavaScriptu, to to wszystko będzie łapało nam strony, które są po block.
I tutaj cokolwiek, cokolwiek, cokolwiek,
cokolwiek to wszystko będzie złapane tutaj za pomocą tego laga.
Jest to tzw. catch w.
Ja sobie usunę, bo nie będziemy akurat
potrzebować tutaj strony block w naszej aplikacji.
Natomiast pominiesz. Powinieneś wiedzieć trochę o
pingu i przydatne do grupowania poszczególnych adresów URL i dzielenia np.
layoutu i styli.
Ciekawe jest to, że podczas grupowania można zrobić taki sam folder bez
grupowania i teoretycznie mamy dwa takie same adresy URL, ale w praktyce
to pierwsza stworzona strona będzie tą zbudowaną przez aplikację.
I jeżeli chodzi o specjal
tak zwany layout, error loading i nawigację po aplikacji to wszystko będę
Ci tłumaczył po drodze jak sobie będziemy budować naszą aplikację.
Natomiast jeżeli chodzi o samą nawigację to jest ona banalnie prosta.
Wykorzystujemy w tym celu komponent Link,
dany nam też od twórców tego frameworka Next.
Generalnie komponent Link wymaga od Ciebie tylko i wyłącznie adresach href odnośnika.
Jest to domyślne.
Podajemy jako string i na tę stronę się przenosimy.
Generalnie rzecz biorąc
router pod spodem używa tylko coś co potrzebuje dynamicznych danych.
To nazywamy też częściowym render linkiem tzw.
pasza rendering i te strony do których lądujemy za pomocą
komponentu Link są kasowane po stronie klienta i render.
Router automatycznie potrafi aktualizować tylko to co trzeba od nowa zwalić.
Dlatego strony budowane w mieście są tak szybkie, tak responsywne,
że w przypadku, w którym mamy dane zapisywane po stronie serwera są one
kasowane po stronie klienta i klient jeżeli drugi raz odwiedza tę samą stronę.
Jeżeli te dane nie muszą być zrealizowane,
to mamy tak naprawdę od razu zwróconą zwrotkę.
Do klienta.
Używana jest ta skasowana wartość.
Jeżeli tak naprawdę odpowiednie warunki zostaną spełnione, router automatycznie
wczytuje tylko to, co już znajduje się w pamięci podręcznej przeglądarki.
Jest tak zwany soft navigation i jeżeli
jakieś dane muszą zostać rywali dodane, następuje hard navigation.
I to jest ta sytuacja.
Kiedy użytkownik już odwiedził naszą stronę, to drugi raz wskakując na tą
stronę będzie miał miejsce soft navigation.
Natomiast jeżeli użytkownik jeszcze nie
odwiedził strony, pierwszy raz ją wczytuje na swoim komputerze.
To jest tzw. hard navigation.
Dostaje nowe dane ze stanem z serwera.
Co jeszcze jest warte wspomnienia to to
jeżeli będziesz sobie używał do nawigowania normalnego a, to tak naprawdę
będziesz standardowo nawigować pomiędzy stronami i nie będziesz korzystać z tych
wszystkich korzyści automatycznie wbudowanych dla nas.
W przypadku użycia komponentu Link i Link adresy to są relatywne adresy do
roota i nie do miejsca użycia komponentu Link.
Czyli niezależnie gdzie sobie bym użył ten komponent link adres to mojego about page
będzie zawsze pisany właśnie w taki sposób.
To będzie zawsze pisane.
Czyli to też warto sobie zapamiętać, że to nie są adresy relatywne.
I myślę Tahiti pode mnie.
Jeżeli będziesz budował sobie nawigację swojej strony, to tak naprawdę staraj się
korzystać tylko i wyłącznie z tego, z tego linku, z tego komponentu.
Link do naszej strony.
Zaczniemy sobie teraz budować naszą nasz routing.
W tym celu najpierw stworzymy nowego
branch, a na naszym naszym repozytorium zróbmy sobie git checkout i develop.
Pociągniemy ostatni develop z naszego zdalnego repozytorium.
Będziemy mieli najnowsze zmiany.
Mamy prime, mamy migracje, które już są i teraz git czeka od I minus B.
Tworzymy nowy.
Brałem, ćwiczę przy sobie jeszcze jakie mamy branch
naszej aplikacji, mamy initial critical, mamy routing, mamy etap DP.
I wszystko się zgadza.
Tak naprawdę trzy.
Sobie ten branch i routing setup, żeby był już prętem zdalnym.
Dobrze, mamy nasz routing setup.
Teraz zanim przejdziemy do do konkretnego pisania kodu, to chciałbym
pokazać jeszcze pewien Dragan, który dla Ciebie
przygotowałem, związany właśnie z tą aplikacją naszą.
Żeby troszeczkę wyjaśnić
w jaki sposób będziemy podchodzić do budowania tej nawigacji.