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





Действительно очень широкий вопрос, но я дам свой вклад:
How similar are [React Native and React]?
Оба основаны на компонентах React и их жизненном цикле, и они написаны на одном языке. Однако React Native — это JS, который компилируется в нативный код. Из-за этого ограничения HTML, допустимый в React, отсутствует в React Native. Кроме того, CSS должен быть написан полностью в стиле JS, а некоторые свойства стиля просто не существуют в нативном (например, 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, которые вы можете повторно использовать в React Native, например react-redux и тому подобное.
Большинство ориентированных на интерфейс библиотек просто не будут работать в React Native, потому что манипуляции с DOM отличаются. Не всегда возможно полностью перейти с React на React-Native, а иногда требуется удивительное количество переписывания кучи мелких раздражающих вещей (нет display: block в Native, помните? ?)
Can you even integrate a Django/Django-REST backend into a React Native frontend?
Это сложнее.
React Native создает автономные приложения, поэтому для его обслуживания не требуется сервер.
В течение всего взаимодействие с API вы по-прежнему сможете обслуживать свой API на каком-либо сервере и получать к нему доступ из своего приложения React Native. Не беспокойтесь (но остерегайтесь КОРС).
Если вы хотите только перенос вашего приложения с React на React Native, это конец. Но имейте в виду: React Native создает автономные приложения, вы можете использовать это, чтобы заставить React Native делать свои собственные HTTP-запросы без необходимости в API, который пропускает некоторые вызовы! Кроме того, он может хранить данные локально, поэтому некоторые внутренние вызовы (вход в систему, получение информации о профиле и т. д.) могут быть сохранены! Это может включать некоторый рефакторинг, но вы создадите более быстрое и дешевое приложение.
Есть еще много вещей, которые нужно сказать, но без каких-либо дополнительных подробностей о структуре вашего приложения трудно дать больше советов и подробностей о переносе приложения. Надеюсь, это помогло!