用于创建 React 组件的 es6 语法是 。export default class ExampleComponent extends React.Component
但是它仍然可以在export default class ExampleComponent
没有extends React.Component
条件的情况下工作import React from 'react'
;为什么会这样
不要扩展 React.Component
IT技术
reactjs
ecmascript-6
2021-05-12 20:42:09
2个回答
在这种情况下很容易错过正在发生的事情,但差别真的很大:没有扩展 React.Component,你只是创建了一个 JS 类。此外:
- 因为它满足 React 类的要求(您可以使用任
React.createClass()
一类或作为 ES6 类创建),它仍然可以“工作”, - 但你不会得到 lifeCyle 方法或访问状态(如果我错了,有人纠正我,很确定你不会只用一个类 bc 没有附加的支持实例)。
- 这些“更简单”的组件对于 React 来说通常处理得更快并且需要更少的“机器”,因为它们只是一个(希望)呈现某些东西的纯函数。
- 因此,它们的主要区别在于,只有一个具有渲染方法的类,您就不会“要求”那么多。大多数时候这应该足够了;您不需要访问
state
所有内容
希望有帮助!
您正在创建一个“纯”的JavaScript 类,但是一旦它没有扩展,React.Component
您将无法访问特定的 React 行为。检查扩展如何工作。