【发布时间】:2018-10-22 01:02:58
【问题描述】:
我将 reactjs 用于前端,将 Django REST API 用于后端。整合两者的最佳方法是什么? 这两个哪个是好的选择?
- 为前端和后端运行两台服务器?
或
- 用 reactjs 替换 django 模板?
非常感谢您的帮助。
【问题讨论】:
我将 reactjs 用于前端,将 Django REST API 用于后端。整合两者的最佳方法是什么? 这两个哪个是好的选择?
或
非常感谢您的帮助。
【问题讨论】:
这里的选项很少
带有 react 的 Django 模板。 不是我喜欢的方法。本质上,您正在混合 django 模板和 jsx。这里的好处是低开销。它需要很少的配置,并允许您在同一个文件中编写 react 和利用 django 模板语言。如果您需要快速启动并运行某些东西,它是一个很好的解决方案。看看这个库https://github.com/Frojd/django-react-templatetags
使用 django webpack 加载器
这将允许您将 React 代码与 django 代码分开,但仍将所有代码保存在一个存储库中。您需要配置 django 设置以找到您的反应代码。然后在您的 prod/dev 服务器上,让您的 Web 服务器指向您的静态反应代码所在的目录,或者编写一个 django url 并查看将为反应应用程序索引文件提供服务的视图。正确配置并运行python manage.py collectstatics 后,它将位于/static/ 中。这里的好处是它将代码保存在一个存储库中,但仍然隔离了 python 和 javascript 代码。这是三者的中间解决方案。速记。您不会使用这种开发方法对热重载做出反应。这是帮助您配置此设置的库https://github.com/owais/django-webpack-loader
拥有 2 个独立的存储库 类似于你现在正在做的事情。有一个单独的反应存储库,由 nodejs 后端提供服务,或者最好将代码部署到像亚马逊 s3 这样的 cdn 服务,并让亚马逊提供单页应用程序。然后将您的 django 应用程序放在单独的服务器上,并使用其可消耗的 rest api(需要配置允许的 cors)。这样做的好处:关注点分离。这种方法需要大量的操作工作:部署、配置和管理 2 个独立的代码库。如果您有时间和资源,我建议您使用此设置。从运营和技术角度来看,此解决方案最具可扩展性
【讨论】:
两台服务器是什么意思?你的意思是两个项目/存储库? 是的,您可以将前端保留在单独的项目中。如果您的后端有多个客户端(如移动应用程序和网络),那么这很有意义。不同的开发人员只能拥有编辑其存储库的权限。如果您打算为您的项目使用一些微服务结构,这也是有意义的。但更简单的方法是将前端和后端保持在同一个项目中。尝试查看some tutorial 了解 Django+reactjs 应用程序。
【讨论】: