为啥 create-react-app 现在要为 App 使用一个函数组件?
Posted
技术标签:
【中文标题】为啥 create-react-app 现在要为 App 使用一个函数组件?【英文标题】:Why does create-react-app now use a function component for App?为什么 create-react-app 现在要为 App 使用一个函数组件? 【发布时间】:2019-09-17 06:30:42 【问题描述】:曾经是:
class App extends Components
//...
现在create-react-app
在App.js
中有这个:
function App()
//...
有人知道为什么要进行这种更改吗?他们是在暗示我们不应该在 App 中有状态吗?
【问题讨论】:
【参考方案1】:由于在 React 中引入了钩子,您可以在函数组件中拥有状态(参见useState)。
根据React 16.x roadmap post的说法,将类组件慢慢过渡到函数组件可能是一个不错的举措:
Hooks 不会弃用类。但是,如果 Hooks 成功,那么在未来的主要版本中,类支持可能会转移到单独的包中,从而减少 React 的默认包大小。
【讨论】:
实际上它们被称为 function 组件,而不是功能组件。在某些情况下,类组件也往往具有功能性,即使它们是经典组件,也没有人称它们为经典;)【参考方案2】:组件类的可重用性不是很好,它们缺乏可互换性。使用远离类组件并开始使用函数组件将是理想的。参考这个post
【讨论】:
以上是关于为啥 create-react-app 现在要为 App 使用一个函数组件?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 create-react-app 找不到我的 Sass 变量