不要扩展 React.Component

IT技术 reactjs ecmascript-6
2021-05-12 20:42:09

用于创建 React 组件的 es6 语法是 。export default class ExampleComponent extends React.Component但是它仍然可以在export default class ExampleComponent没有extends React.Component条件的情况下工作import React from 'react'为什么会这样

2个回答

在这种情况下很容易错过正在发生的事情,但差别真的很大:没有扩展 React.Component,你只是创建了一个 JS 类。此外:

  • 因为它满足 React 类的要求(您可以使用任React.createClass()一类或作为 ES6 类创建),它仍然可以“工作”,
  • 你不会得到 lifeCyle 方法或访问状态(如果我错了,有人纠正我,很确定你不会只用一个类 bc 没有附加的支持实例)。
  • 这些“更简单”的组件对于 React 来说通常处理得更快并且需要更少的“机器”,因为它们只是一个(希望)呈现某些东西的纯函数。
  • 因此,它们的主要区别在于,只有一个具有渲染方法的类,您就不会“要求”那么多。大多数时候这应该足够了;您不需要访问state所有内容

希望有帮助!

您正在创建一个“纯”的JavaScript 类,但是一旦它没有扩展,React.Component您将无法访问特定的 React 行为。检查扩展如何工作