Подтвердить что ты не робот

Можно ли использовать js-код для создания мобильных приложений с использованием реакции native?

Я работаю над проектом для домашних животных (веб-приложение), и мне было интересно, следует ли мне реагировать, потому что было бы легко создавать собственные приложения из этого кода (в будущем, если мне нужно).

  • И если ответ "да", каковы наилучшие практики для большинство resuse?

  • Если ответ отрицательный, вы можете порекомендовать альтернативу?

Дополнительная информация о моей ситуации.

Я относительно новичок, и моя альтернатива будет хороша с html с bootstrap и jquery. Я рассматриваю возможность использования asp.net mvc и web api.

4b9b3361

Ответ 1

Обмен логикой приложений между веб-приложением React и приложением React Native, при этом возможность индивидуального рендеринга компонентов уникальна для каждой платформы!

По-моему, это отличный вариант, который у нас есть. Я дам вам обзор подхода и несколько советов.

В идеальном мире мы могли бы поделиться 100% кода. Насколько я знаю, это невозможно, но мы все же можем поделиться большим количеством кода. Хотя React Native похож на React, очень важно отметить, что код рендеринга отличается. Вместо веб-объектов, таких как <div> или <span>, вы используете React Native, такие как <View>, <Text> и другие встроенные компоненты.

Однако бизнес-логика в большинстве случаев - это просто JavaScript, хотя и одна из важных вещей, которые мы можем поделиться!

План

Основываясь на используемой вами архитектуре Flux, это будет означать, что ваш магазин (ы), редукторы, действия будут общим кодом, а также большей частью бизнес-логики (внутри служб или что-то еще), а также константы и утилиты.

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

Некоторые общие рекомендации/советы

  • Рассмотрим хорошую архитектуру и структуру кода, чтобы максимально использовать код (и логику приложения). Попробуйте отделить компоненты представления пользовательского интерфейса (которые будут разными для каждой платформы).

  • Взгляните на Особенности среды JavaScript в документах React Native. При использовании React Native вы будете запускать код JavaScript в двух средах:

    • На iOS-симуляторах и устройствах, эмуляторах и устройствах Android. React Native использует JavaScriptCore, который является механизмом JavaScript, который включает Safari. В iOS JSC не используется JIT из-за отсутствия записываемой исполняемой памяти в приложениях iOS.
    • При использовании отладки Chrome он запускает весь код JavaScript внутри самого Chrome и общается с собственным кодом через WebSocket. Таким образом, вы используете V8.

    Хотя обе среды очень похожи, вы можете столкнуться с некоторыми несоответствиями.

  • Рассмотрим различные стратегии совместного использования кода. Чтобы получить доступ к общему коду, приложения, которые вы строите, не должны жить в одной и той же базе кода или репозитории git.

    Более реалистично, у вас было бы два или более проектов, размещенных отдельно, поэтому пакет npm является одним из самых простых способов совместного использования кода между ними.

    Это легко сделать, как создать новый пакет и установить его как зависимость внутри каждого из ваших проектов. Для пути к общему проекту вы можете использовать репозиторий git, а не указывать на общедоступный пакет на npm.

    Даже если вы создаете только веб-приложение, , вы могли бы потратить некоторое время на размышление о том, как можно обобщить часть общего кода, поэтому его проще использовать в будущем.

Ответ 2

Это возможно и жизнеспособно. Вы должны иметь представление для каждой платформы (web/android/ios), потому что у каждого есть свои компоненты.

Бизнес-логика должна быть вне поля зрения. Использование флюса может упростить ваш проект с помощью native, поскольку он перемещает взаимодействие api на слой данных, позволяя виду быть просто представлением.