Destrukcja React ES6


Destrukturyzacja

Aby zilustrować destrukturyzację, zrobimy kanapkę. Czy wyjmujesz wszystko z lodówki, żeby zrobić kanapkę? Nie, wyjmujesz tylko te przedmioty, które chciałbyś wykorzystać na swojej kanapce.

Destrukturyzacja jest dokładnie taka sama. Możemy mieć tablicę lub obiekt, z którym pracujemy, ale potrzebujemy tylko niektórych elementów w nich zawartych.

Destrukturyzacja ułatwia wyodrębnienie tylko tego, co jest potrzebne.


Niszczenie tablic

Oto stary sposób przypisywania elementów tablicy do zmiennej:

Zanim:

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

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

Oto nowy sposób przypisywania elementów tablicy do zmiennej:

Z destrukturyzacją:

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

const [car, truck, suv] = vehicles;

Podczas destrukturyzacji tablic ważna jest kolejność deklarowania zmiennych.

Jeśli chcemy tylko samochód i suv, możemy po prostu pominąć ciężarówkę, ale zachować przecinek:

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

const [car,, suv] = vehicles;

Destrukturyzacja przydaje się, gdy funkcja zwraca tablicę:

Przykład

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

Zostać certyfikowanym!

Uzupełnij moduły React, wykonaj ćwiczenia, podejdź do egzaminu i uzyskaj certyfikat w3schools!!

95 $ ZAPISZ

Destrukturyzacja obiektów

Oto stary sposób używania obiektu wewnątrz funkcji:

Zanim:

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 + '.';
}

Oto nowy sposób używania obiektu wewnątrz funkcji:

Z destrukturyzacją:

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 + '.';
}

Zauważ, że właściwości obiektu nie muszą być deklarowane w określonej kolejności.

Możemy nawet zdestrukturyzować głęboko zagnieżdżone obiekty, odwołując się do zagnieżdżonego obiektu, a następnie używając dwukropka i nawiasów klamrowych, aby ponownie zdestrukturyzować potrzebne elementy z zagnieżdżonego obiektu:

Przykład

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 + '.';
}


Sprawdź się za pomocą ćwiczeń

Ćwiczenie:

Użyj destrukturyzacji, aby wyodrębnić tylko trzeci element z tablicy do zmiennej o nazwie suv.

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

const [] = vehicles;