Переход от проекта Django-Rest / React к проекту Django-Rest / React Native - PullRequest
0 голосов
/ 25 февраля 2019

Итак, я работаю над проектом, в котором бэкэнд написан на Django / Django-Rest, а внешний интерфейс написан на React.Это было здорово, но главной целью проекта должно стать мобильное приложение, для которого мы обратились к React Native.Я не вижу много ресурсов о переходе между React и React Native.

Насколько они похожи?Можно ли даже портировать какой-нибудь наш интерфейсный код с React на React Native?Можете ли вы даже интегрировать бэкэнд Django / Django-REST в интерфейс React Native?

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

Спасибо

1 Ответ

0 голосов
/ 26 февраля 2019

Действительно очень широкий вопрос, но я приведу свой вклад:

Насколько похожи [React Native и React]?

Оба полагаются на компоненты Reactи их жизненный цикл, и они написаны на одном языке.Однако React Native - это JS, который компилируется в собственный код.Из-за этого ограничения HTML, действительный в React, отсутствует в React Native.Кроме того, CSS должен быть написан в стиле полностью JS, а некоторые свойства стиля просто не существуют в native (например, display - это либо flex, либо none).Пример:

// React
import React from 'react';

class MyComponent extends React.Component {
  render() {
    return (
      <div style="background-color: red">
        hello world
      </div>
    )
  }
}

// React Native
import React from 'react';
import { Text } from 'react-native';

class MyComponent extends React.Component {
  render() {
    return (
      <Text style={{backgroundColor: 'red'}}>
        hello world
      </Text>
    )
  }
}

Кроме того, в React Native есть много вещей, которые вы можете использовать повторно, например react-redux и тому подобное.

Большинство интерфейсно-ориентированных библиотек просто победилине работают в React Native, потому что манипуляции с DOM разные.Не всегда выполнимо полностью перейти от React к React-Native, и иногда это требует удивительного количества переписывания на кучу маленьких раздражающих вещей (нет display: block в Native, помните? *)

Можете ли вы даже интегрировать бэкэнд Django / Django-REST в интерфейс React Native?

Это более сложно.

React Native создает автономные приложения, поэтому ему не нужнолюбой сервер для его обслуживания.

Для всего , взаимодействующего с компонентами API , вы все равно сможете обслуживать свой API на каком-либо сервере и получать к нему доступ из приложения React Native.Не беспокойтесь (но остерегайтесь CORS ).

Если вы хотите перенести свое приложение из React в React Native , это конец.Но имейте в виду: React Native создает автономные приложения, вы можете использовать это, чтобы React Native делал свои собственные HTTP-запросы без необходимости API, который передает некоторые вызовы!Кроме того, он может хранить данные локально, поэтому могут быть некоторые внутренние вызовы (логин, поиск информации о профиле и т. Д.), Которые можно сохранить!Это может включать в себя некоторый рефакторинг, но вы создадите более быстрое и дешевое приложение.


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

...