DevGang
Авторизоваться

Обновление React Native до 0.59 и поддержка 64-битного Android

Вышло обновление React Native до 0.59! Это еще один большой релиз с 644 коммитами от 88 участников. Что было исправлено, добавлено и обновлено ниже в статье!

React Hooks

React Hooks являются частью этого релиза, который позволяет вам повторно использовать логику с отслеживанием состояния между компонентами. Есть много шума о хуках, но если вы еще не слышали, взгляните на некоторые из замечательных ресурсов ниже:

  • Introducing Hooks объясняет, почему мы добавляем хуки в React.
  • Hooks at a Glance - это быстрый обзор встроенных хуков.
  • Building Your Own Hooks демонстрирует повторное использование кода с помощью пользовательских хуков.
  • Making Sense of React Hooks исследуют новые возможности, открываемые хуками.
  • useHooks.com демонстрирует поддерживаемые сообществом рецепты и демонстрации Hooks.

Обновленный JSC означает повышение производительности и 64-битную поддержку на Android

React Native использует JSC (JavaScriptCore) для работы вашего приложения. JSC на Android был устаревший, что означало, что многие современные функции JavaScript не были поддержаны. Еще хуже то, что он работает плохо по сравнению с современным JSC iOS. С этим выпуском все меняется.

Благодаря замечательной работе @DanielZlotin, @dulmandakh, @gengjiawen, @kmagiera и @kudo JSC удалось обновить. Это обеспечивает 64-разрядную поддержку, поддержку современного JavaScript и значительные улучшения производительности. Огромное спасибо за то, что теперь он также делает этот процесс обслуживаемым, чтобы мы могли воспользоваться будущими усовершенствованиями WebKit без особого труда, и спасибо Software Mansion и Expo за то, что сделали эту работу возможной.

Загрузка ресурсов по необходимости: "inline requires"

Мы хотим помочь людям по умолчанию создавать эффективные React Native приложения. Приложения загружают ресурсы по мере необходимости, и не замедляют запуск. Эта функция называется «inline requires», так как позволяет Metro определять компоненты, загружаемые с отложенной загрузкой. Приложения с глубокой и разнообразной компонентной архитектурой увидят наибольшее улучшение.

Нам нужно, чтобы сообщество сообщило нам, как оно работает, прежде чем включить его по умолчанию. При обновлении до 0.59 будет доступен новый файл настроек metro.config.js

Lean Core в стадии реализации

React Native - это большой и сложный проект со сложным хранилищем. Это делает кодовую базу менее доступной для участников, трудной для тестирования и раздуваемой как зависимость dev. Lean Core - это наши усилия по решению этих проблем путем переноса кода в отдельные библиотеки для лучшего управления. Последние несколько релизов видели первые шаги в этом, но давайте серьезно.

Вы можете заметить, что дополнительные компоненты теперь официально устарели. Это отличная новость, поскольку сейчас есть владельцы этих функций, которые активно их поддерживают. Ниже приведена таблица с указанием компонента, его состояния и того, что можно использовать для его замены.

COMPONENTDEPRECATED?NEW HOME
AsyncStorage0.59@react-native-community/react-native-async-storage
ImageStore0.59expo-file-system or react-native-fs
MaskedViewIOS0.59@react-native-community/react-native-masked-view
NetInfo0.59@react-native-community/react-native-netinfo
Slider0.59@react-native-community/react-native-slider
ViewPagerAndroid0.59@react-native-community/react-native-viewpager

В ближайшие месяцы будет много других компонентов, следующих по этому пути к более компактному ядру.

Улучшения CLI

Инструменты командной строки React Native являются точкой входа разработчика в экосистему, но у них были давние проблемы и им не хватало официальной поддержки. Инструменты CLI были перенесены в новый репозиторий, и выделенная группа сопровождающих уже внесла некоторые впечатляющие улучшения.

Логи теперь лучше отформатированы. Команды теперь выполняются практически мгновенно - вы сразу заметите разницу:

Обновление до 0.59

Для обновления до 0.59 мы рекомендуем использовать rn-diff-purge, чтобы определить, что изменилось между вашей текущей версией React Native и 0.59, а затем применить эти изменения вручную. После того, как вы обновили свой проект до 0.59, вы сможете использовать недавно улучшенную команду react-native upgrade (основанную на rn-diff-purge!) Для обновления до 0.60 и более поздних версий по мере появления новых версий.

Что поломали

Поддержка Android в версии 0.59 была изменена в соответствии с последними рекомендациями Google, что может привести к потенциальной поломке существующих приложений. Эта проблема может отображаться как сбой во время выполнения и сообщение «You need to use a Theme.AppCompat theme (or descendant) with this activity». Мы рекомендуем обновить файл AndroidManifest.xml вашего проекта, убедившись, что значение android:theme является темой AppCompat (например, @style/Theme.AppCompat.Light.NoActionBar).

Команда react-native-git-upgrade была удалена в 0.59 в пользу новой улучшенной команды react-native upgrade.

Перевод статьи: Releasing React Native 0.59

#ReactNative
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

В этом месте могла бы быть ваша реклама

Разместить рекламу