延展操作符(Spread operator)

延展操作符(Spread operator)

這個 … 操作符(也被叫做延展操作符 - spread operator)已經(jīng)被 ES6 數(shù)組 支持。它允許傳遞數(shù)組或者類數(shù)組直接做為函數(shù)的參數(shù)而不用通過apply。

var people=['Wayou','John','Sherlock'];
//sayHello函數(shù)本來接收三個單獨的參數(shù)人妖,人二和人三
function sayHello(people1,people2,people3){
console.log(Hello ${people1},${people2},${people3});
}
//但是我們將一個數(shù)組以拓展參數(shù)的形式傳遞,它能很好地映射到每個單獨的參數(shù)
sayHello(...people);//輸出:Hello Wayou,John,Sherlock
//而在以前,如果需要傳遞數(shù)組當參數(shù),我們需要使用函數(shù)的apply方法
sayHello.apply(null,people);//輸出:Hello Wayou,John,Sherlock

而在 React 中,延展操作符一般用于屬性的批量賦值上。在JSX中,可以使用…運算符,表示將一個對象的鍵值對與ReactElement的props屬性合并。

var props = {};
props.foo = x;
props.bar = y;
var component = <Component {...props} />;

//等價于
var props = {};
props.foo = x;
props.bar = y;
var component = <Component foo={x} bar={y} />;

它也可以和普通的XML屬性混合使用,需要同名屬性,后者將覆蓋前者:

var props = { foo: 'default' };
var component = <Component {...props} foo={'override'} />;
console.log(component.props.foo); // 'override'

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容