请问在angular或者react中的这个...是什么语法?
// State 是一个对象
function reducer(state, action) {
return Object.assign({}, state, { thingToChange });
// 或者
return { ...state, ...newState };
}
// State 是一个数组
function reducer(state, action) {
return [...state, newItem];
}
这里的...state前面3个...是什么意思?
... 是es6 的新增的语法,有两种用法,一种是扩展,一种是收集。在这里是使用的是扩展,就是分割,把一堆东西分割成一个一个的。比如数组[1, 2,3 ],
它是一个集合,...[1,2,3] 就会变成1, 2, 3 三个数。在es6 中,它主要就是对这种可以迭代的集合进行割(扩展)。 然而,在react 中,它的功能更进了一步,可以对对象进行扩展 var state = {name: 'sam', job: 'web'}; ...state 相当于变成了 name: 'sam', job: 'web' 这样一个一个的键值对,如果声明一个
newState 对象,var newState = {job: 'java'}, ...newState就变成了 job: 'java' 键值对, 然后把它们合在一起 {...state, ...newState } 就变成了一个对象,
{name: 'sam', job: 'web', job: 'java'} 由于job 是相同的字段所以后面的job 会把前面的覆盖, 变成 {name: 'sam', job: 'java'} ,这样,我们把state 改变了
而没有改变以前的state, 这就是redux的单项数据流
es6的扩展运算符,和angular和react没关系
http://es6.ruanyifeng.com/#docs/array#%E6%89%A9%E5%B1%95%E8%BF%90%E7%AE%97%E7%AC%A6
这是一个方法,拷贝对象,可以查一查的
函数调用者自身的相关信息
函数调用过来然后进行扩展
react 的属性扩展符号,可以查看react的中文官网,你就知道了