Reagir ES6 Desestruturando


Desestruturando

Para ilustrar a desestruturação, faremos um sanduíche. Você tira tudo da geladeira para fazer seu sanduíche? Não, você só retira os itens que gostaria de usar no seu sanduíche.

A desestruturação é exatamente a mesma coisa. Podemos ter um array ou objeto com o qual estamos trabalhando, mas precisamos apenas de alguns dos itens contidos neles.

A desestruturação facilita a extração apenas do que é necessário.


Destruindo Matrizes

Aqui está a maneira antiga de atribuir itens de matriz a uma variável:

Antes de:

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

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

Aqui está a nova maneira de atribuir itens de matriz a uma variável:

Com desestruturação:

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

const [car, truck, suv] = vehicles;

Ao desestruturar arrays, a ordem em que as variáveis ​​são declaradas é importante.

Se quisermos apenas o carro e o suv, podemos simplesmente deixar o caminhão de fora, mas manter a vírgula:

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

const [car,, suv] = vehicles;

A desestruturação é útil quando uma função retorna uma matriz:

Exemplo

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

Obter certificação!

Complete os módulos React, faça os exercícios, faça o exame e torne-se certificado w3schools!!

$ 95 INSCRIÇÃO

Desestruturando Objetos

Aqui está a maneira antiga de usar um objeto dentro de uma função:

Antes de:

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

Aqui está a nova maneira de usar um objeto dentro de uma função:

Com desestruturação:

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

Observe que as propriedades do objeto não precisam ser declaradas em uma ordem específica.

Podemos até desestruturar objetos profundamente aninhados referenciando o objeto aninhado e usando dois pontos e chaves para desestruturar novamente os itens necessários do objeto aninhado:

Exemplo

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


Teste-se com exercícios

Exercício:

Use a desestruturação para extrair apenas o terceiro item da matriz, em uma variável chamada suv.

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

const [] = vehicles;