...
(três pontos em Javascript) é chamado de sintaxe de propagação ou operador de propagação. Isso permite que uma iterável, como uma expressão ou string de matriz, seja expandida ou uma expressão de objeto seja expandida onde quer que seja colocada. Isso não é específico para reagir. É um operador Javascript.
Todas essas respostas são úteis, mas quero listar os Casos de Uso práticos mais usados da Sintaxe de Spread (Operador de Spread).
1. Combinar matrizes (concatenar matrizes)
Existem várias maneiras de combinar matrizes , mas o operador de dispersão permite que você coloque isso em qualquer lugar da matriz. Se você quiser combinar duas matrizes e colocar elementos em qualquer ponto da matriz, faça o seguinte:
var arr1 = ['two', 'three'];
var arr2 = ['one', ...arr1, 'four', 'five'];
// arr2 = ["one", "two", "three", "four", "five"]
2. Copiando matrizes
Quando queríamos uma cópia de uma matriz, tínhamos o método Array.prototypr.slice () . Mas você pode fazer o mesmo com o operador spread.
var arr = [1,2,3];
var arr2 = [...arr];
// arr2 = [1,2,3]
3. Funções de chamada sem aplicar
No ES5, para passar uma matriz de dois números para a doStuff()
função, você costuma usar o método Function.prototype.apply () da seguinte maneira:
function doStuff (x, y, z) { }
var args = [0, 1, 2];
// Call the function, passing args
doStuff.apply(null, args);
No entanto, usando o operador spread, você pode passar uma matriz para a função.
doStuff(...args);
4. Reestruturando matrizes
Você pode usar a desestruturação e o operador restante juntos para extrair as informações em variáveis como você deseja:
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
console.log(x); // 1
console.log(y); // 2
console.log(z); // { a: 3, b: 4 }
5. Argumentos de função como parâmetros de descanso
O ES6 também possui os três pontos (...), que é um parâmetro de descanso que coleta todos os argumentos restantes de uma função em uma matriz.
function f(a, b, ...args) {
console.log(args);
}
f(1,2,3,4,5);
// [ 3, 4, 5 ]
6. Usando funções matemáticas
Qualquer função em que a propagação é usada como argumento pode ser usada por funções que podem aceitar qualquer número de argumentos.
let numbers = [9, 4, 7, 1];
Math.min(...numbers); // 1
7. Combinando dois objetos
Você pode usar o operador de propagação para combinar dois objetos. Essa é uma maneira fácil e limpa de fazer isso.
var carType = {
model: 'Toyota',
yom: '1995'
};
var carFuel = 'Petrol';
var carData = {
...carType,
carFuel
}
console.log(carData);
// {
// model: 'Toyota',
// yom: '1995',
// carFuel = 'Petrol'
// }
8. Separe uma string em caracteres separados
Você pode usar o operador de propagação para espalhar uma sequência em caracteres separados.
let chars = ['A', ...'BC', 'D'];
console.log(chars); // ["A", "B", "C", "D"]
Você pode pensar em mais maneiras de usar o Operador de propagação. O que listei aqui são os casos de uso populares dele.