...
(Javascriptでは3つのドット)は、Spread SyntaxまたはSpread Operatorと呼ばれます。これにより、配列式や文字列などのイテラブルを展開したり、オブジェクト式をどこにでも展開したりできます。これはReactに固有のものではありません。これはJavascript演算子です。
ここでのこれらすべての回答は役に立ちますが、スプレッド構文(スプレッド演算子)の主に使用される実用的なユースケースをリストアップしたいと思います。
1.配列の結合(配列の連結)
配列を組み合わせるにはさまざまな方法がありますが、spread演算子を使用すると、これを配列の任意の場所に配置できます。2つの配列を組み合わせて、配列内の任意の場所に要素を配置する場合は、次のようにします。
var arr1 = ['two', 'three'];
var arr2 = ['one', ...arr1, 'four', 'five'];
// arr2 = ["one", "two", "three", "four", "five"]
2.配列のコピー
配列のコピーが必要なときは、以前はArray.prototypr.slice()メソッドがありました。ただし、spreadオペレーターでも同じことができます。
var arr = [1,2,3];
var arr2 = [...arr];
// arr2 = [1,2,3]
3.適用せずに関数を呼び出す
ES5では、2つの数値の配列をdoStuff()
関数に渡すために、次のようにFunction.prototype.apply()メソッドを使用することがよくあります。
function doStuff (x, y, z) { }
var args = [0, 1, 2];
// Call the function, passing args
doStuff.apply(null, args);
ただし、spread演算子を使用すると、関数に配列を渡すことができます。
doStuff(...args);
4.配列の破壊
分解と残りの演算子を一緒に使用して、必要に応じて情報を変数に抽出できます。
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.残りのパラメータとしての関数引数
ES6には、関数の残りのすべての引数を配列に収集する残りのパラメーターである3つのドット(...)もあります。
function f(a, b, ...args) {
console.log(args);
}
f(1,2,3,4,5);
// [ 3, 4, 5 ]
6.数学関数の使用
引数としてspreadが使用されている関数は、任意の数の引数を受け入れることができる関数で使用できます。
let numbers = [9, 4, 7, 1];
Math.min(...numbers); // 1
7. 2つのオブジェクトを組み合わせる
スプレッド演算子を使用して、2つのオブジェクトを組み合わせることができます。これは、簡単でわかりやすい方法です。
var carType = {
model: 'Toyota',
yom: '1995'
};
var carFuel = 'Petrol';
var carData = {
...carType,
carFuel
}
console.log(carData);
// {
// model: 'Toyota',
// yom: '1995',
// carFuel = 'Petrol'
// }
8.文字列を別の文字に分割する
スプレッド演算子を使用して、文字列を個別の文字に広げることができます。
let chars = ['A', ...'BC', 'D'];
console.log(chars); // ["A", "B", "C", "D"]
スプレッドオペレーターの使用方法は他にも考えられます。ここに挙げたのは、その一般的な使用例です。