【问题标题】:React-Create-App creates App.js, but in old js syntaxReact-Create-App 创建 App.js,但使用旧的 js 语法
【发布时间】:2019-05-11 10:13:45
【问题描述】:

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

【问题讨论】:

    标签: ecmascript-6 react-create-app


    【解决方案1】:

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

    现在,后者,函数组件,主要是首选方式,除非你想用组件的lifecycle methods 做一些真正花哨的事情。

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

    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;
    

    如您所见,它略显冗长,但完全有效。

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

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

    【讨论】:

    • 我明白了,这些天我研究和学习了反应,现在它更清楚了,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多