我刚开始学习 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/