не распространяйте реакцию.Деталь
Синтаксис es6 для создания компонента React - export default class ExampleComponent extends React.Component
.Однако это все еще работает, когда export default class ExampleComponent
Без extends React.Component
при условии, что import React from 'react'
; Почему это происходит
2 ответа:
Легко оказаться в такой ситуации и пропустить то, что происходит, но разница действительно огромна: без расширения реагировать.Компонент, вы просто создаете класс JS. Кроме того:
- поскольку он удовлетворяет требованиям класса React (который можно создать либо с помощью
React.createClass()
, либо в качестве класса ES6), он все равно будет "работать",- но вы не получите методы lifeCyle или доступ к состоянию (кто-то поправит меня, если я ошибаюсь в этом, довольно уверен, что вы не будете с помощью только класс bc там нет резервного экземпляра прилагается).
- эти "простые" компоненты, как правило, быстрее реагируют и требуют меньше "машин", так как они просто (надеюсь) чистая функция, которая что-то визуализирует.
- таким образом, их ключевое отличие здесь заключается в том, что только с классом, который имеет метод рендеринга, вы не "требуете" так много. этого должно быть достаточно большую часть времени; вам не нужен доступ к
state
для всегоНадеюсь, это поможет!
Вы создаете "чистый" класс JavaScript, но как только он не расширит
React.Component
, вы не сможете получить доступ к определенному поведению React. Проверьте , как расширяется работа.