W Metropolii Quantum każdy inżynier dysponuje zaawansowanym zestawem narzędzi diagnostycznych, które pozwalają w czasie rzeczywistym monitorować systemy miasta, wykrywać anomalie i optymalizować działanie infrastruktury. Podobnie, Next.js 15 oferuje programistom potężny zestaw narzędzi deweloperskich, które znacząco przyspieszają pracę i ułatwiają znajdowanie błędów.
Wyobraź sobie, że inżynierowie Metropolii Quantum mogą modyfikować systemy miasta i widzieć efekty zmian w ułamku sekundy, bez konieczności restartowania całej infrastruktury. Dokładnie tak działa Fast Refresh w Next.js.
Fast Refresh to mechanizm hot reload, który automatycznie aktualizuje podgląd aplikacji w przeglądarce po zapisaniu zmian w kodzie. Kluczowe cechy:
useState czy useReducer1// Edytujesz ten komponent i zapisujesz plik...
2export default function Dashboard() {
3 const [count, setCount] = useState(0);
4
5 return (
6 <div>
7 <h1>Panel Quantum: {count}</h1>
8 <button onClick={() => setCount(count + 1)}>+1</button>
9 </div>
10 );
11}
12// Fast Refresh aktualizuje komponent, ale count zachowuje swoją wartość!Kiedy Fast Refresh resetuje stan? Jeśli edytujesz plik, który eksportuje coś innego niż komponent React (np. stałą, funkcję pomocniczą), Fast Refresh przeładuje cały moduł. To normalne zachowanie.
W centrum dowodzenia Metropolii Quantum każda anomalia jest natychmiast wyświetlana na ekranie głównym z dokładnym opisem problemu i lokalizacją. Next.js oferuje analogiczny mechanizm - Error Overlay.
Gdy w kodzie pojawi się błąd, Next.js wyświetla pełnoekranową nakładkę z:
TypeError, SyntaxError, ReferenceError1// Jeśli napiszesz taki kod z błędem:
2export default function Page() {
3 const user = null;
4 return <h1>{user.name}</h1>; // TypeError: Cannot read property 'name' of null
5}
6
7// Error Overlay pokaże:
8// TypeError: Cannot read properties of null (reading 'name')
9// app/page.tsx (3:22)Error Overlay działa zarówno dla błędów czasu kompilacji (np. błędy składni TypeScript) jak i błędów czasu wykonania (np. odwołanie do niezdefiniowanej zmiennej). Wystarczy naprawić błąd i zapisać plik - overlay zniknie automatycznie.
W Metropolii Quantum stary generator energii TurboCore został zastąpiony nowym, znacznie wydajniejszym reaktorem kwantowym. Podobnie, Next.js 15 wprowadza Turbopack jako nowy bundler, który zastępuje Webpack.
Turbopack to bundler napisany w Rust, stworzony przez twórcę Webpacka. Jego główne zalety:
Aby uruchomić Next.js z Turbopackiem:
1# W trybie deweloperskim
2npx next dev --turbopack
3
4# Lub w package.json
5{
6 "scripts": {
7 "dev": "next dev --turbopack"
8 }
9}Turbopack jest domyślnie włączony w trybie deweloperskim od Next.js 15. Znacząco przyspiesza czas ładowania strony podczas developmentu, szczególnie w dużych projektach.
Każdy technik w Metropolii Quantum korzysta z zaawansowanego skanera do analizy systemów miasta. Dla programistów React odpowiednikiem jest rozszerzenie React DevTools.
React DevTools to rozszerzenie przeglądarki (Chrome, Firefox, Edge), które pozwala:
props, useState, useContext1// React DevTools pokaże strukturę:
2// <RootLayout>
3// <Navbar />
4// <MainContent>
5// <Dashboard count={5} />
6// <Sidebar items={[...]} />
7// </MainContent>
8// <Footer />
9// </RootLayout>W Next.js React DevTools automatycznie rozpoznają Server Components i Client Components, wyświetlając odpowiednie oznaczenia.
Każdy inżynier Metropolii Quantum musi znać podstawowe narzędzia diagnostyczne. Oto kluczowe techniki debugowania w Next.js:
Najprostsze, ale bardzo skuteczne narzędzie. W Next.js
console.log działa zarówno po stronie serwera (terminal) jak i klienta (DevTools przeglądarki):1// Server Component - logi widoczne w terminalu
2export default async function Page() {
3 console.log("Ten log pojawi się w terminalu serwera");
4 const data = await getData();
5 console.log("Pobrane dane:", data);
6 return <div>{data.title}</div>;
7}
8
9// Client Component - logi widoczne w przeglądarce
10"use client";
11export default function Button() {
12 console.log("Ten log pojawi się w konsoli przeglądarki");
13 return <button onClick={() => console.log("Kliknięto!")}>Click</button>;
14}Zakładka Network w DevTools przeglądarki pozwala monitorować wszystkie żądania sieciowe:
Plik
next.config.js (lub next.config.mjs) to centralny punkt konfiguracji projektu Next.js, podobny do głównego panelu sterowania Metropolii Quantum. Oto najważniejsze opcje:1// next.config.js
2/** @type {import('next').NextConfig} */
3const nextConfig = {
4 // Optymalizacja obrazów - dozwolone domeny zewnętrzne
5 images: {
6 domains: ['example.com', 'cdn.example.com'],
7 },
8
9 // Przekierowania URL
10 async redirects() {
11 return [
12 {
13 source: '/stary-adres',
14 destination: '/nowy-adres',
15 permanent: true,
16 },
17 ];
18 },
19
20 // Zmienne środowiskowe dostępne w kodzie
21 env: {
22 APP_VERSION: '1.0.0',
23 },
24};
25
26module.exports = nextConfig;Najczęściej używane opcje konfiguracyjne:
images - konfiguracja optymalizacji obrazówredirects - przekierowania URL (np. po zmianie struktury strony)env - dodatkowe zmienne środowiskoweexperimental - eksperymentalne funkcje Next.jsNarzędzia deweloperskie Next.js to jak zaawansowany system diagnostyczny Metropolii Quantum - pozwalają ci:
Znajomość tych narzędzi jest fundamentem efektywnej pracy z Next.js. W kolejnych modułach będziesz je regularnie wykorzystywać podczas budowania coraz bardziej zaawansowanych aplikacji w Metropolii Quantum.