create-react-app生成函数而不是App.js中的类

Nad*_*tai 8 reactjs create-react-app

我正在尝试使用create-react-app命令创建react app,并且它将App.js文件作为函数(不带类的ES5语法)而不是类(以下代码中的示例)生成:

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

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}

export default App;
Run Code Online (Sandbox Code Playgroud)

如何强制create-react-app生成类?

Ric*_*ard 6

您可以轻松地将其更改为这样的类:

import React, {Component} from 'react';
import logo from './logo.svg';
import './App.css';

class App extends Component {
  render() {
    return (
      <div className="App">
        <header className="App-header">
          <img src={logo} className="App-logo" alt="logo" />
          <p>
            Edit <code>src/App.js</code> and save to reload.
          </p>
          <a
            className="App-link"
            href="https://reactjs.org"
            target="_blank"
            rel="noopener noreferrer"
          >
            Learn React
          </a>
        </header>
      </div>
    );
  }
}
export default App;
Run Code Online (Sandbox Code Playgroud)


Cha*_*had 5

生成新项目时,这是默认文件。

这是复制文件的链接。我相信CRA的较早版本确实具有类,但是就强制其生成带有类的文件而言,目前尚未设置该类。


Fáb*_*uza 5

是的,现在 React 在功能组件方面已经好多了,我们不再需要类组件了。您可以使用 Hooks 来创建状态等。

看看文档:

https://reactjs.org/docs/hooks-overview.html