0

我刚开始尝试学习 reactjs 并找到了一些教程。他们都告诉我跑步npx create-react-app .之类的。我遇到的问题是,当我看到他们的 App.js 时,他们都有类,而我的有function App() {...}而不是class App extends Component. 与导入语句相同。他们说import React, { Component } from 'react',而我的说import React from 'react'我不确定出了什么问题,我该如何解决?

4

1 回答 1

0

有多种方法可以定义 React 组件——作为类组件或函数组件。

如今,后者,函数组件,主要是首选方式,除非你想用组件的生命周期方法做一些真正花哨的事情。

不过,类组件仍然有效,您会经常在较早的在线教程中找到它们。

Create react app 创建一个功能组件App来帮助您入门:

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, { 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;

正如你所看到的,它稍微有点冗长,但它是完全有效的。

您可以将函数替换为您在所遵循教程的示例代码中找到的类。

Component除了 之外,别忘了导入react,在这种情况下——对于类组件,这是必要的,因为类需要扩展Component

于 2019-05-12T06:28:05.300 回答