Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用propTypes时功能反应组件与反应组件_Reactjs - Fatal编程技术网

Reactjs 使用propTypes时功能反应组件与反应组件

Reactjs 使用propTypes时功能反应组件与反应组件,reactjs,Reactjs,React 0.14引入纯函数作为组件,如下所示: export const Label = ({title} => ( <span>{label}</span> ) class Label extends React.Component { static propTypes = {} static defaultProps = { title: "unknown" } render() { <span>{th

React 0.14引入纯函数作为组件,如下所示:

export const Label = ({title} => (
  <span>{label}</span>
)
class Label extends React.Component {
  static propTypes = {}
  static defaultProps = { 
    title: "unknown"
  }
  render() {
      <span>{this.props.label}</span>
  }
}
我也可以使用
React.Component
如下:

export const Label = ({title} => (
  <span>{label}</span>
)
class Label extends React.Component {
  static propTypes = {}
  static defaultProps = { 
    title: "unknown"
  }
  render() {
      <span>{this.props.label}</span>
  }
}
类标签扩展了React.Component{
静态propTypes={}
静态defaultProps={
标题:“未知”
}
render(){
{this.props.label}
}
}
一切都将立即可见,组件也可以理解


那么我们为什么要使用功能组件呢?

没有必要使用纯功能组件,创建它们的原因是为了方便创建无状态功能组件,而无需扩展组件类。本文详细解释了这一点

没有必要使用纯功能组件,创建它们的原因是为了方便创建无状态功能组件,而无需扩展组件类。本文详细解释了这一点

即使在您的情况下,我也看到了使用功能组件的原因:

  • 在组件规模上没有ES6或React magic,因此输出JS要短得多
  • 更干净的分离。您有一个返回表示组件的函数。像默认道具这样的“元数据”就像ES6组件一样被分开
  • 如文档中所述,React希望对功能组件进行特殊优化,以便将来使用它们比使用常规组件更好地用于演示目的:
在理想情况下,大多数组件都是无状态函数,因为在将来,我们还可以通过避免不必要的检查和内存分配来针对这些组件进行性能优化。如果可能,这是推荐的模式


即使在您的情况下,我也看到了使用功能组件的原因:

  • 在组件规模上没有ES6或React magic,因此输出JS要短得多
  • 更干净的分离。您有一个返回表示组件的函数。像默认道具这样的“元数据”就像ES6组件一样被分开
  • 如文档中所述,React希望对功能组件进行特殊优化,以便将来使用它们比使用常规组件更好地用于演示目的:
在理想情况下,大多数组件都是无状态函数,因为在将来,我们还可以通过避免不必要的检查和内存分配来针对这些组件进行性能优化。如果可能,这是推荐的模式


尤其是优化步骤(代码大小和运行时加速)和更干净的代码(无反应魔法)让我信服!尤其是优化步骤(代码大小和运行时加速)和更干净的代码(无反应魔法)让我信服!