如何从create-react-app获取类声明?

时间:2019-05-02 11:42:28

标签: reactjs create-react-app

使用npx create-react-app new创建一个新的react项目之后,我在App.js中获得了功能性js代码:

import React from 'react';
import './App.css';

//need to have a class instead of a function here:
function App() {

  return (
    <div className="App">
    </div>
  );
}

export default App;

创建无功能的React项目需要什么命令?如果功能胜于所有功能,请解释原因。

4 个答案:

答案 0 :(得分:2)

如果您为此项目安装了create-react-app,那么它将提供react 16.8.6(最新版本的react)中的所有新功能。最新的react版本提出了Hooks的概念。这就是为什么我们默认使用功能组件而不是基于类的组件来提高性能的原因。

如果默认情况下需要基于类的组件,则必须使用旧版本的create-react-appRef

答案 1 :(得分:1)

使用create-react-app创建新的React应用时,它会从此处https://github.com/facebook/create-react-app/tree/master/packages/react-scripts/template拉出模板

功能组件比类组件(ES6类)更可取,因为功能组件通常是无状态的,即没有任何状态和生命周期方法-选中此https://reactjs.org/docs/state-and-lifecycle.html。它们的性能优于具有状态的类组件。因此,作为一种好习惯,人们应该总是喜欢使用尽可能多的无状态组件(功能性)而不是有状态(类),这也可以在React Starter应用程序(即create-react-app

)中完成

答案 2 :(得分:1)

您可以像这样将react-scripts v3.x迁移到 v2.x

npx create-react-app my-app --scripts-version react-scripts@2.1.7

答案 3 :(得分:0)

使用:create-react-app <project> --scripts-version 2.1.7 创建一个新的 React 项目,该项目以基于类的 App 组件而不是函数式组件开始。