Skip to content

13. ES6+ w React

This content is not available in your language yet.

ES6+ w React

Nowoczesny JavaScript (ES6 i nowsze) jest wszechobecny w kodzie React. Destrukturyzacja, spread operator, arrow functions, template literals, optional chaining, nullish coalescing — każda linia kodu React używa tych funkcji. Zrozumienie ich jest kluczem do czytania i pisania React kodu.

  1. Destrukturyzacja? — Wyciąganie wartości z obiektów/tablic do zmiennych
  2. Spread i rest operator? — Kopiowanie/rozwijanie struktur danych
  3. Optional chaining ?.? — Bezpieczny dostęp do zagnieżdżonych właściwości
  4. Nullish coalescing ??? — Wartość domyślna tylko gdy null/undefined (nie 0 ani "")
  1. Destrukturyzacja obiektów — props, state, API response
  2. Destrukturyzacja tablic — useState, useReducer
  3. Spread operator — niemutowalna aktualizacja stanu
  4. Arrow functions — callbacks, event handlers
  5. Optional chaining i nullish coalescing — bezpieczny dostęp do danych API

Schemat

Przed/Po refaktor: ten sam komponent React napisany bez ES6 (verbose) vs z ES6+ (zwięzły). Pokazuje jak dużo kodu ES6 eliminuje.

Przykład kodu JSX

Komponent karty produktu używający ALL ES6+ features jednocześnie — destrukturyzacja props, spread do aktualizacji stanu, optional chaining dla danych API.

  • Destrukturyzacja obiektów i tablic
  • Spread operator
  • Arrow functions

Forma: 10 slajdów, 10 minut

Ocena: 3.0
// STARY SPOSÓB
function UserCard(props) {
const name = props.user.name;
const email = props.user.email;
const age = props.user.age;
return <div>{name} ({age}) — {email}</div>;
}
// Z DESTRUKTURYZACJĄ
function UserCard({ user: { name, email, age = 'N/A' } }) {
return <div>{name} ({age}) — {email}</div>;
}
// Destrukturyzacja tablicy — useState
const [count, setCount] = useState(0);
const [user, setUser] = useState(null);
// Aktualizacja zagnieżdżonego obiektu w stanie
const [profile, setProfile] = useState({
name: 'Jan',
address: { city: 'Warszawa', zip: '00-001' }
});
// ŹLE — bezpośrednia mutacja
profile.address.city = 'Kraków';
// DOBRZE — spread do nowego obiektu
setProfile(prev => ({
...prev,
address: {
...prev.address,
city: 'Kraków'
}
}));
function ProductCard({ product }) {
// Bez optional chaining: błąd gdy reviews jest null/undefined
// const firstReview = product.reviews[0].text; // Crash!
// Z optional chaining: bezpieczny dostęp
const firstReview = product?.reviews?.[0]?.text ?? 'Brak recenzji';
const price = product?.pricing?.discounted ?? product?.price ?? 0;
return (
<div>
<h2>{product?.name}</h2>
<p>Cena: {price}</p>
<p>Recenzja: {firstReview}</p>
</div>
);
}

Porównaj stary i nowy kod

Najlepszy slajd: ten sam kod przed i po ES6+. Różnica jest natychmiastowo widoczna — mniej linii, bardziej ekspresywny.

Kopialna karta

Zróbcie slajd “cheat sheet” z wszystkimi ES6+ składniami w jednym miejscu. Klasa będzie chciała zrobić zdjęcie telefon — to dobry znak!

ES6+ to język React!

Nie da się pisać ani czytać kodu React bez ES6+. Ten temat to fundament fundament — opanujcie go a cały React stanie się bardziej czytelny!