[Перевод] React v0.13 RC
За выходные мы выпустили первый (и надеемся последний) пре-релиз React v0.13! Мы уже немного говорили о грядущих изменениях. Основное — это конечно же поддержка ES6 классов. Подробнее в нашем анонсе беты. Мы очень взволнованы этим событием! Себастьян также написал сегодня утром о некоторых изменениях с ReactElement. Мы надеемся, что изменения, над которыми мы работатли, улучшат производительность и ощущения от разработки.
Пре-релиз доступен для скачивания:
Мы также опубликовали 0.13.0-rc1 версию react и react-tools в npm и react в bower.
ИзмененияЯдро React
Критические изменения
Изменение props после того, как элемент был создан, устарело. В dev-режиме вы получите предупреждение; следующие версии React будут включать в себя оптимизации, предполагая, что props — константа.
Статические методы (определенные в statics) больше автоматически не привязываются к компоненту.
Порядок определения ref немного изменился так, что ссылка на компонент доступна сразу после вызова метода componentDidMount; это изменение будет заметно, если ваш компонент вызывает родительский коллбэк внутри componentDidMount, а это анти-паттерн и этого следует избегать не смотря ни на что.
Изменения после вызова setState теперь всегда применяются в пакетном режиме, а значит асинхронны. Раньше первый вызов, при первом подключении (mount) компонента был синхронным.
Вызов setState и forceUpdate на отключенном (unmounted) компоненте теперь выкидывает предупреждение, вместо исключения. Это помогает избежать проблем с производительностю в промисах.
Доступ к большинству внутренних свойств был полностью удален, включая this._pendingState и this._rootNodeID.
Новые возможности
Поддержка ES6 классов для создания компонентов React; подробнее
Добавлено новое API React.findDOMNode (component), его нужно использовать, вместо component.getDOMNode (). Базовый класс для компонентов основанных на ES6-классах не имеет метода getDOMNode.
Новый стиль для ref, позволит использовать коллбэк, вместо названия: