首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解构react组件的最好方法是什么?

解构react组件的最好方法是什么?
EN

Stack Overflow用户
提问于 2019-02-10 15:37:35
回答 2查看 72关注 0票数 1

我见过人们在react的函数组件中使用像这样的解构。

代码语言:javascript
复制
const InputGroup = ({
  name,
  placeholder,
  value
}) => (

与其这样做,我更喜欢的方式是,

代码语言:javascript
复制
 const InputGroup = props => {
      const { name, placeholder, value } = props
}

哪种方法更好?我觉得第二种方法更具可读性,但第一种方法更简洁。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-10 16:06:35

在生产上没有实际的区别。

不同之处在于,如果使用props对象,则可以对其进行调试。否则,在函数作用域中只能使用非结构化属性。

如果正在使用ES5目标,这不是问题,因为箭头被转换为常规函数,该函数具有可在调试器中检查的arguments对象。

出于维护目的,一致地解析props对象也是有益的。通过这种方式,函数组件可以转换为类组件,反之亦然,而无需更改函数体中的现有行:

代码语言:javascript
复制
const InputGroup = props => {
  const { name, placeholder, value } = props;
  ...
}

代码语言:javascript
复制
class InputGroup extends Component {
  render() {
   const { props } = this;
   const { name, placeholder, value } = props;
   ...
  }
}

解构的另一个特点是根本不解构props,因为命名冲突,主要是在属性和状态之间;两者都可以包含同名的实体:

代码语言:javascript
复制
const InputGroup = props => {
  const [state, setState] = useState(...);

  return <p>{state.name || props.name}</p>;
}

在解构过程中重命名它们,或者只允许它们中的一个解构,都会导致代码风格不一致。

票数 2
EN

Stack Overflow用户

发布于 2019-02-10 15:42:59

他们中没有一个比他们更好。第二种方法不可能在函数组件中实现,因为您不能在其中创建const。当你在react中获得更多的代码编写经验时,第一种方法是很好读的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54614357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档