高级组件的数据传递为什么要写成{...props} ?

来源:4-9 【高阶组件HOC】withAddToCart()

Rukia酱00

2021-07-29

如图这两个返回对象不都是Object么?为什么,要使用展开运算符…pros传递数据?难道是为了向对象添加属性addToCart么?
图片描述
图片描述

写回答

1回答

阿莱克斯刘

2021-07-31

JavaScript中三个点叫做“展开操作符”,他的作用就是简化传递数据的操作。

我们可以想象一下,如果你有一个组件需要输入 N 个 properties。 如果properties的数量不断增加,那么我们的传递数据的代码将会非常难看。

<Component x={} y={} z={} />

所以,为了避免组件属性传递出现冗长,React的语法糖允许我们使用展开操作符来添加对象参数

var props = { x: 1, y: 1, z:1 };
<Component {...props} />

以上的代码在react中有一个专有名词叫做unpack,拆包,react会自动帮你映射并且适配相对应的对象。在组件中, 我们通常 this.props.x 来使用拆包后的props

以上操作适用于所有react组件,并不局限于高阶组件


0
1
Rukia酱00
非常感谢!
2021-08-03
共1条回复

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程