React组件是一个函数而不是一个类[重复]

Posted

技术标签:

【中文标题】React组件是一个函数而不是一个类[重复]【英文标题】:React component is a function not a class [duplicate] 【发布时间】:2019-12-03 08:26:20 【问题描述】:

所以我正在努力学习 ReactJs(我有 AngularJs 背景),我在学习教程时遇到了麻烦。

要创建项目,我们运行以下命令:

npx create-react-app app-name

然后在教程中App.jsclass。但是当我运行该命令时,我的命令是 function

教程 App.js

class App extends Component 
render() 
return (
  <div className="App">
    <h1>Hello, world!</h1>
  </div>
);


我的 App.js

function App() 
return (
<div className="App">

</div>
);

我对这部分很困惑。

【问题讨论】:

两种方式都可以写组件 这可能只是他们在教程中使用的 react 版本。你的是最新的。但正如 John 所说,您可以用两种方式编写组件。 【参考方案1】:

有不同的写法:函数组件和类组件。 类组件支持 React 组件的整个生命周期,而函数组件实际上只是渲染函数。 您可以在此处了解不同之处:https://reactjs.org/docs/components-and-props.html#function-and-class-components

在 React 的最后一个版本中,出现了一个名为 Hooks 的新特性,它可以让你在函数组件中做你需要的一切: https://reactjs.org/docs/hooks-intro.html

希望这会有所帮助:)

【讨论】:

感谢您的回答,看起来反应方向是hooks【参考方案2】:

React 组件可以是类,也可以是函数。它适用于两者。使用类组件的优势在于它为您的组件提供了更多功能,例如状态、生命周期方法。这些组件通常很复杂。另一方面,功能组件非常简单易学。 您还可以使用以下方法将功能组件转换为类组件: https://reactjs.org/docs/state-and-lifecycle.html

希望这会有所帮助!

【讨论】:

以上是关于React组件是一个函数而不是一个类[重复]的主要内容,如果未能解决你的问题,请参考以下文章

React 类组件及函数组件结合Lodash debounce需要注意的问题和一种解决方法

将 React 组件从函数重构为 ES6 类

react之事件处理

React - 偏好:函数组件与类组件[重复]

React 分享一

无法在 React 组件类中使用箭头函数 [重复]