reactjs - React - 函数和组件的区别

标签 reactjs create-react-app

我刚开始学习 React,我注意到最初创建的 App.js 组件与教程(最近的)中的组件不同。

生成的结果是这样的:

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;

教程中的那个看起来很相似,但看起来像这样:

import React 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;

最近是否对默认的 App.js 进行了任何更改?

最佳答案

是的,这是最近的变化。它于 2019 年 3 月合并。

https://github.com/facebook/create-react-app/pull/6451

在实践中,App.js 的两个版本之间没有区别,因为该类仅实现了 render 方法。在这里使用类组件非常好,并且没有计划从 react.js 中删除类组件。

您将不得不询问 create-react-app 团队他们为什么要更改它。他们大概想尽可能地使用函数组件。随着 react 16.8 中 hooks 的引入,几乎所有以前需要类组件的事情现在都可以使用函数组件来完成。

关于reactjs - React - 函数和组件的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57232486/

相关文章:

javascript - React Refactoring 组件有太多的 Prop

javascript - 如何在语义 UI react 下拉列表的文本字段中添加新行?

css - Create React App 生成的应用程序的 Sass 文件中的相对 img url 问题

webpack - 使用 'lodash-es' 和 create-react-app 减少 bundle 中的 Lodash

javascript - npm start 是如何工作的,应该是 npm run start 吧? (创建 react 应用程序)

reactjs - 创建 react 应用程序 RangeError : Maximum call stack size exceededat Object. mkdirSync

reactjs - 使用 React Refs 触发命令式动画

javascript - 如何根据特定页面有条件地在 Gatsby 中呈现组件?

reactjs - 如何使用 redux-thunk 调度操作让 connected-react-router 重定向?

javascript - create-react-app max_old_space_size 不起作用