После Реагировать 0.13 мы можем использовать ES6 класс для создания Реагировать компоненты, как и выше:Необходимо ли, чтобы компонент React простирался от React.Component?
class A extends React.Component {
// ...
}
Однако, если я иногда забываю печатать extends React.Component
компонент А еще работает хорошо для меня до тех пор, пока я не использовать простые методы подобный this.setState()
.
Я начинаю думать, что необходимо, чтобы компонент React простирался от React.Component
.
В архитектуре, подобной FLUX или Redux, есть умные компоненты React и немые компоненты React. Смарт-те подключены к хранилищу данных, в то время как немые получают только реквизиты от родителей и render.I уже известно в React 0.14, мы можем просто написать чистая функция для немых.
Однако в интеллектуальных компонентов также существует разница, что некоторые компоненты имеют состояния в то время как некоторые don't.If разница между печатая extends React.Component
и не только this.setState()
, я просто не extends React.Component
, когда мой компонент не должен управлять его собственное государство.
Но почему «классы компонентов ES6 теперь должны расширять группу React.Component, чтобы включить компоненты функции без состояния»? – J22Melody
Чтобы правильно определить, что такое функция без состояния и какая функция-конструктор представляет класс компонента. Функции конструктора должны быть вызваны с помощью 'new', функции stateless не должны. Об этом в GitHub есть целый поток. –
Хорошо, thx! – J22Melody