从Django-Rest / React项目过渡到Django-Rest / React本机项目

时间:2019-02-25 20:23:13

标签: django reactjs react-native django-rest-framework

所以我一直在从事一个项目,该项目的后端使用Django / Django-Rest编写,而前端当前使用React编写。确实很棒,但是该项目的总体目标应该是一个移动应用程序,我们已将其转向React Native。我没有看到很多关于在React和React Native之间进行转换的资源。

它们有多相似?甚至可以将我们的任何前端代码从React移植到React Native?您甚至可以将Django / Django-REST后端集成到React Native前端中?

我知道这是一些非常开放的问题,但是我还没有找到很多资源,因此我们将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:1)

实际上是一个很广泛的问题,但我会提供我的意见:

  

[React Native和React]有多相似?

两者都依赖于React组件及其生命周期,并且它们是用相同的语言编写的。但是,React Native是正在编译为本机代码的JS。由于这个限制,在React中有效的HTML在React Native中不是。而且,CSS必须以全JS样式编写,并且某些样式属性根本不存在于本机中(例如displayflexnone)。示例:

// 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内容,例如react-redux之类。

大多数面向接口的库根本无法在React Native中使用,因为DOM操作是不同的。从React完全过渡到React-Native并非总是可行的,有时它需要对一堆令人讨厌的小东西进行大量重写(Native中没有display: block,记得吗?)

  

您甚至可以将Django / Django-REST后端集成到React Native前端中吗?

更复杂。

React Native生成独立的应用程序,因此不需要任何服务器即可为其提供服务。

对于与API交互的整个 ,您仍然可以在某些服务器上提供API并从React Native应用访问它。在那里不用担心(但要提防 CORS

如果您只想将应用程序从React移植到React Native ,那就结束了。但是请记住:React Native产生独立的应用程序,您可以使用它使React Native发出自己的HTTP请求,而无需通过一些调用的API!而且,它可以本地存储数据,因此可能可以保存一些后端调用(登录,个人资料信息检索等)!这可能包括一些重构,但是您将构建一个更快,更便宜的应用程序。


还有很多事情要说,但是由于您的应用程序结构没有任何进一步的细节,因此很难提供有关移植应用程序的更多建议和细节。希望能有所帮助!