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

Мы знаем, о чем вы думаете: React.js кажется странным выбором для проектов Интернета вещей. Разве это не еще один интерфейсный фреймворк для простых веб-сайтов? Разве технологии Интернета вещей не должны использовать более мускулистую основу? Нет, не совсем. Вы можете использовать React по-разному. Есть React.js для веб-разработки, React Native для кроссплатформенной мобильной разработки, React-three для 3D-рендеринга, React-360 для создания интерфейсов 3D и VR. И да, есть еще React.js для серверного IoT.

Достаточно ли этой библиотеки JavaScript для вашего следующего IoT-проекта? Давайте исследуем ресурсы React, чтобы найти ответ.

Преимущества использования React для решений Интернета вещей

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

1. Композиционная структура

React позволяет использовать композиционную структуру проекта, а не структуру, основанную на наследовании. По сути, композиционная структура помогает лучше организовать код. В обычном ООП вы должны создать класс или объект, а затем другой объект наследует этот класс или объект.

Использование модели наследования для большого проекта Интернета вещей может оказаться очень сложным и трудным для понимания. Но с React создание приложения похоже на создание набора Lego. Создав компонент, вы можете использовать в нем другие компоненты. Например, вы можете создавать и использовать компоненты для определенных устройств IoT.

2. Разделение проблем

Поскольку в React каждый компонент индивидуален, с каждым можно работать изолированно. Другими словами, вам не нужно беспокоиться о том, как изменение одного компонента повлияет на остальной код. Благодаря разделению задач в React компоненты не знают ничего, кроме необходимого. Можно обрабатывать данные в одном месте и передавать их дочерним компонентам. Компоненты, принимающие и обрабатывающие данные, можно легко отделить от компонентов датчика. Это означает, что вы не потеряетесь в сложном взаимодействии кода между датчиками Интернета вещей и данными. Дочерние компоненты не могут влиять на родительские компоненты.

В React данные передаются компонентам через props - объект, содержащий информацию о компоненте. Это отличный инструмент для общения между родительскими и дочерними компонентами. Вы можете передавать компоненты - будь то числа, строки или функции. Свойства связаны с состоянием, в котором хранятся данные. Если состояние изменяется, компонент выполняет повторный рендеринг, в результате чего приложение остается неизменным с использованием последних данных.

Но почему это важно для проектов Интернета вещей? Создание приложения на основе компонентов позволяет создавать компоненты двух типов. Во-первых, те, которые получают, обрабатывают и передают данные дочерним компонентам; во-вторых, компоненты, соответствующие датчикам Интернета вещей. Они получают или передают реквизиты и действуют соответственно, не имея доступа к большему количеству данных, чем необходимо.

3. Методы жизненного цикла

Методы жизненного цикла - еще один замечательный набор функций библиотеки React. Они хорошо обслуживают проекты Интернета вещей. Эти методы гарантируют, что все компоненты не отстают от изменений данных. Проще говоря, методы жизненного цикла упрощают взаимодействие приложения с реальным миром. Каждый раз, когда компонент обновляется, он запускает последовательность методов жизненного цикла (например, изменение температуры запускает новый цикл).

Например, представьте себе умный дом. Когда температура поднимается до 25 ° C, приложение сообщает светодиодному компоненту, чтобы он включился, чтобы пользователь знал, что внутри становится жарко. Однако, если температура не превышает установленный предел, цикл останавливается, и компонент перестает обновляться.

Методы жизненного цикла - это простой способ обработки обновлений приложения. Каждый раз, когда из реального мира приходят новые данные, приложение проверяет их соответствие и обновляет компоненты. И если системы Интернета вещей производят что-либо регулярно, так это данные - много-много данных.

Уродливая правда о React

Несмотря на преимущества, React не является популярным инструментом для разработки программного обеспечения для Интернета вещей. Давайте выясним, почему.

1. React имеет открытый исходный код

React - это решение с открытым исходным кодом, и оно не получает должной поддержки. Интеграция новых библиотек часто может вызывать конфликты и заставлять приложение вести себя непредсказуемо. React не хватает надежности и стабильности Node.js, а для массовых промышленных приложений IoT (IIoT) жизненно важны как надежность, так и стабильность.

2. React ориентирован на пользовательский интерфейс

Может показаться, что React хорошо подходит для приложений IoT и IIoT, но он не идеален. Хотя React гибкий, он больше ориентирован на разработку пользовательского интерфейса и интерфейсную часть. И React не является автономным решением; он может лишь в ограниченной степени повысить производительность. Чтобы добиться отличных результатов, React должен зависеть от других библиотек.

3. React - не самое распространенное решение для разработки Интернета вещей

React.js редко используется для Интернета вещей (пока). В результате разработка IoT-приложения с помощью React похожа на плавание по неизведанным водам. Несмотря на то, что есть некоторые библиотеки для облегчения интеграции, такие как эта, интеграция остается сложной задачей. Вместо того, чтобы использовать удобную библиотеку, вашим разработчикам приходится придумывать собственные решения, что одновременно сложно и требует много времени.

Будущее React для Интернета вещей

Благодаря композиционной структуре React, разделению задач и методам жизненного цикла эта библиотека JavaScript действительно приносит некоторые преимущества проектам Интернета вещей:

  • Лучшая читаемость кода. Поскольку React основан на компонентах, его легко читать и понимать.
  • Более быстрая разработка. Код React легко изменить, потому что вы можете многократно повторно использовать и комбинировать модульные компоненты.
  • Повышенная устойчивость: компоненты React представляют собой независимые фрагменты кода, что упрощает отслеживание проблем и отладку.
  • Обновления в реальном мире. Благодаря способу визуализации компонентов React их легко обновлять.

Учитывая все обстоятельства, React подходит для небольших проектов Интернета вещей. Но разработка сложных, многоуровневых приложений IIoT с помощью React может стать проблемой. По сути, это рискованно и сложно, потому что библиотека не пользуется популярностью для систем Интернета вещей. React.js лучше подходит для интерфейсной разработки с упором на пользовательский интерфейс. Я сомневаюсь, что React.js может преодолеть вышеупомянутые недостатки, поскольку все больше разработчиков вносят свой вклад в библиотеку. На данный момент, учитывая все его слабые стороны, одного React.js недостаточно для сложных проектов Интернета вещей.

Изначально эта статья была опубликована в IoT for All - мировом центре Интернета вещей.