Действительно очень широкий вопрос, но я приведу свой вклад:
Насколько похожи [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, который передает некоторые вызовы!Кроме того, он может хранить данные локально, поэтому могут быть некоторые внутренние вызовы (логин, поиск информации о профиле и т. Д.), Которые можно сохранить!Это может включать в себя некоторый рефакторинг, но вы создадите более быстрое и дешевое приложение.
Есть еще много вещей, которые нужно сказать, но без каких-либо дополнительных подробностей о структуре вашего приложения трудно дать большесоветы и подробности о портировании приложения.Надеюсь, это помогло!