请问在angular或者react中的这个...是什么语法?

请问在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的单项数据流

这是一个方法,拷贝对象,可以查一查的

函数调用者自身的相关信息

函数调用过来然后进行扩展

react 的属性扩展符号,可以查看react的中文官网,你就知道了