Переход от проекта Django-Rest/React к проекту Django-Rest/React Native

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

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

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

Спасибо

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
310
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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


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

Другие вопросы по теме