Destructuration
Essentiel pour React ! Permet d'extraire des valeurs facilement.
Destructuration d'objet
javascript
const user = { name: 'Alice', age: 25, city: 'Paris' };
// Avant
const name = user.name;
const age = user.age;
// Avec destructuration ✨
const { name, age } = user;
console.log(name); // 'Alice'
console.log(age); // 25
Avec renommage
javascript
const user = { name: 'Alice', age: 25 };
const { name: userName } = user;
console.log(userName); // 'Alice'
Avec valeur par défaut
javascript
const user = { name: 'Alice', age: 25 };
const { name, country = 'France' } = user;
console.log(country); // 'France'
Objets imbriqués
javascript
const user = {
name: 'Alice',
address: {
city: 'Paris',
country: 'France'
}
};
const { address: { city, country } } = user;
console.log(city); // 'Paris'
console.log(country); // 'France'
En React - Props
La destructuration est omniprésente pour accéder aux props :
javascript
// Sans destructuration
const UserCard = (props) => {
return <div>{props.name} - {props.age} ans</div>;
};
// Avec destructuration ✨
const UserCard = ({ name, age }) => {
return <div>{name} - {age} ans</div>;
};
Destructuration de tableau
javascript
const colors = ['red', 'green', 'blue'];
// Extraire les premiers éléments
const [first, second] = colors;
console.log(first); // 'red'
console.log(second); // 'green'
// Ignorer des éléments
const [, , third] = colors;
console.log(third); // 'blue'
Avec valeur par défaut
javascript
const colors = ['red'];
const [first, second = 'blue'] = colors;
console.log(first); // 'red'
console.log(second); // 'blue'
Rest operator
javascript
const numbers = [1, 2, 3, 4, 5];
const [first, second, ...rest] = numbers;
console.log(first); // 1
console.log(second); // 2
console.log(rest); // [3, 4, 5]
En React - useState
La destructuration est omniprésente avec les hooks React :
javascript
import { useState } from 'react';
// useState retourne un tableau [valeur, setter]
const [count, setCount] = useState(0);
// Équivalent sans destructuration (moins lisible)
const countState = useState(0);
const count = countState[0];
const setCount = countState[1];
Que fait ce code : const { name, age } = user ?
Destructuration dans les paramètres
Fonctions
javascript
// Sans destructuration
const displayUser = (user) => {
console.log(`${user.name} - ${user.age} ans`);
};
// Avec destructuration ✨
const displayUser = ({ name, age }) => {
console.log(`${name} - ${age} ans`);
};
displayUser({ name: 'Alice', age: 25 });
// "Alice - 25 ans"
Avec valeurs par défaut
javascript
const greet = ({ name = 'Anonyme', greeting = 'Bonjour' } = {}) => {
return `${greeting} ${name}!`;
};
console.log(greet()); // "Bonjour Anonyme!"
console.log(greet({ name: 'Alice' })); // "Bonjour Alice!"
console.log(greet({ name: 'Bob', greeting: 'Salut' })); // "Salut Bob!"
Échange de variables
javascript
let a = 1;
let b = 2;
// Échange avec destructuration
[a, b] = [b, a];
console.log(a); // 2
console.log(b); // 1
Astuce
La destructuration rend le code plus lisible et concis. C'est une compétence essentielle pour React !