在 React 组件中使用扩展语法时顺序是不是重要?

Posted

技术标签:

【中文标题】在 React 组件中使用扩展语法时顺序是不是重要?【英文标题】:Does order matter when using spread syntax in React component?在 React 组件中使用扩展语法时顺序是否重要? 【发布时间】:2020-03-19 19:09:38 【问题描述】:

我们在react组件中使用扩展运算符,使用...Input,它也有onChange方法,那么我们自定义的onChange需要写在传播之前还是之后?

当我们使用扩展运算符时,顺序是否重要?方法覆盖是在这里完成的吗?

表示在性能和语法方面正确、有效和首选的写作方式。

<Input type='text' ...input onChange=onChange />

或者

<Input type='text' onChange=onChange ... input /> 

很抱歉将 2 3 个问题混在一起,请不要将其标记为未批准或投票关闭。现在,在 SO 中提出问题的日子变得很困难。哈哈

我也在寻找在 React Component 中的第一位或最后一位写散布项目的一般做法,任何 lint 规则?

【问题讨论】:

我会在传播输入后执行 onChange,因为如果输入也具有 onChange 属性,那么它将覆盖您刚刚放置的 onChange。 是的,这很重要,... input 之后的任何内容都可以覆盖输入内容 【参考方案1】:

...Input 也有 onChange 方法

那么顺序很重要。后一个覆盖前一个。

这是正确有效和首选的写作方式,在条款 性能和语法。

没有性能差异。订单取决于您的需求。如果您想覆盖onChange,请使用:

<Input type='text' onChange=onChange ... input /> 

【讨论】:

我认为你的例子和你的陈述是矛盾的。我想在传播项目函数上覆盖我的自定义函数然后我认为我们需要在 ...Input 之后编写自定义函数 @diEcho 我假设您想覆盖&lt;Input&gt; 中的onChange 函数。如果你想覆盖道具里面的那个,把它放在第一位。最后一个,覆盖前一个。 我想用我自己的 onChange 覆盖 的 onChange 方法,所以显然需要在 ... input 之后写。为什么要覆盖我自己的函数? @diEcho 我的示例覆盖了 的 onChange 方法。那么矛盾是什么呢? 您的回答代码不会覆盖 input 的 onChange 而是反向执行。 .【参考方案2】:

是的,这很重要。

<Input type='text' ...input onChange=onChange />

在这种情况下,“input”内部的“onChange”方法将被其外部的“onChange”覆盖。反之亦然。

我认为根据您要覆盖哪一个,您可以将其带入输入中,例如:

input = ...input, onChange
Or
input = onChange, ...input

<Input type='text' ...input  />

【讨论】:

以上是关于在 React 组件中使用扩展语法时顺序是不是重要?的主要内容,如果未能解决你的问题,请参考以下文章

我是不是必须保存带有 jsx 扩展名的反应组件文件

如何将 Autodesk Forge 扩展与 React.js 一起使用?

玩转 React- 组件的内部状态和生命周期

React 学习笔记

react之事件处理

我们一起来详细的了解react的语法以及组件的使用方法