Reagovat ES6 Destructuring


Ničení

Pro ilustraci ničení si uděláme sendvič. Vytahujete všechno z lednice, abyste si udělali sendvič? Ne, vyjmete pouze položky, které byste chtěli použít na svém sendviči.

Destrukce je úplně stejná. Můžeme mít pole nebo objekt, se kterým pracujeme, ale potřebujeme pouze některé položky v nich obsažené.

Destrukcí je snadné extrahovat pouze to, co je potřeba.


Ničení polí

Zde je starý způsob přiřazování položek pole k proměnné:

Před:

const vehicles = ['mustang', 'f-150', 'expedition'];

// old way
const car = vehicles[0];
const truck = vehicles[1];
const suv = vehicles[2];

Zde je nový způsob přiřazování položek pole k proměnné:

S destrukcí:

const vehicles = ['mustang', 'f-150', 'expedition'];

const [car, truck, suv] = vehicles;

Při destrukci polí je důležité pořadí, ve kterém jsou proměnné deklarovány.

Pokud chceme jen auto a suv, můžeme náklaďák jednoduše vynechat, ale čárku si necháme:

const vehicles = ['mustang', 'f-150', 'expedition'];

const [car,, suv] = vehicles;

Destrukce se hodí, když funkce vrátí pole:

Příklad

function calculate(a, b) {
  const add = a + b;
  const subtract = a - b;
  const multiply = a * b;
  const divide = a / b;

  return [add, subtract, multiply, divide];
}

const [add, subtract, multiply, divide] = calculate(4, 7);


w3schools CERTIFIED . 2022

Získejte certifikaci!

Dokončete moduly React, proveďte cvičení, udělejte zkoušku a získejte certifikaci w3schools!!

95 $ PŘIHLÁSIT SE

Ničení objektů

Zde je starý způsob použití objektu uvnitř funkce:

Před:

const vehicleOne = {
  brand: 'Ford',
  model: 'Mustang',
  type: 'car',
  year: 2021, 
  color: 'red'
}

myVehicle(vehicleOne);

// old way
function myVehicle(vehicle) {
  const message = 'My ' + vehicle.type + ' is a ' + vehicle.color + ' ' + vehicle.brand + ' ' + vehicle.model + '.';
}

Zde je nový způsob použití objektu uvnitř funkce:

S destrukcí:

const vehicleOne = {
  brand: 'Ford',
  model: 'Mustang',
  type: 'car',
  year: 2021, 
  color: 'red'
}

myVehicle(vehicleOne);

function myVehicle({type, color, brand, model}) {
  const message = 'My ' + type + ' is a ' + color + ' ' + brand + ' ' + model + '.';
}

Všimněte si, že vlastnosti objektu nemusí být deklarovány v určitém pořadí.

Můžeme dokonce destruovat hluboce vnořené objekty odkazem na vnořený objekt a poté pomocí dvojtečky a složených závorek znovu destruovat položky potřebné z vnořeného objektu:

Příklad

const vehicleOne = {
  brand: 'Ford',
  model: 'Mustang',
  type: 'car',
  year: 2021, 
  color: 'red',
  registration: {
    city: 'Houston',
    state: 'Texas',
    country: 'USA'
  }
}

myVehicle(vehicleOne)

function myVehicle({ model, registration: { state } }) {
  const message = 'My ' + model + ' is registered in ' + state + '.';
}


Otestujte se pomocí cvičení

Cvičení:

Použijte destrukturování k extrahování pouze třetí položky z pole do proměnné s názvem suv.

const vehicles = ['mustang', 'f-150', 'expedition'];

const [] = vehicles;