0

使用 webpack 和 python 作为后端来实现同构反应应用程序的最佳方法是什么

需要实现以下功能 1. React 路由器 2. Redux 存储

4

1 回答 1

0

通过同构,我理解您的意思是在服务器和客户端上都呈现 - 所以网站的第一次访问将返回静态 HTML 和一个 javascript 包,然后用反应呈现的版本替换静态 HTML。

通常这意味着使用 Node.js 在服务器上运行 javascript。这意味着您可以在服务器上呈现您的 JSX/React 模板/组件,并将它们作为静态 HTML 发送给用户。如果你在服务器上使用 Python,你不能在服务器上使用你的 JSX/Javascript 模板和逻辑,所以你需要在 Python 中复制它。

所以既然你必须做两次 - 你首先需要弄清楚你想先做哪一个。首先是 Python,或者是 Javascript。

您可以从构建整个应用程序服务器端渲染开始,然后让 javascript 接管,或者构建一个完全 javascript 应用程序,并使用 Python 渲染第一个视图。

就个人而言,对于内容驱动的网站,我更喜欢使用 Django(最常用的 Python Web 框架)构建一个服务器端呈现的应用程序,然后在它完全作为一个无 javascript 网站运行时在顶部添加 Javascript。这具有即使禁用 javascript 也能正常工作的优势,并确保您拥有良好的 URL 等。

当然,如果它是一个在用户交互方面非常复杂的应用程序,您将需要以另一种方式进行。

我建议先研究 Django,这是 django-girls 的一个很棒的教程。但是,如果你想走主要是 JS 的路线,这里有一些想法:

Javascript优先

可能最好的方法是首先设计您的数据结构,然后为您的数据制作一个 REST api。(例如/api/1.0/cars/rustbucket_94,它发送 JSON 数据。)

接下来,找出面向用户的 URL 架构,并确定需要拉入哪些 REST 端点才能获取这些页面。(最终用户应该如何看待 URL。例如/cars/rustbucket_94.html

像往常一样设计你的 React 应用程序,使用那些 REST / JSON 端点和反应路由器来正确显示它。

一旦你的整个 react 应用程序正常工作,你现在可以构建整个事物的服务器端渲染版本,你需要从头开始重新实现,并且可以通过 JSON 端点访问数据(慢)或通过在页面内部进行查询。

Python 方面

在后端使用哪个 Python 框架?

我建议从Django开始。它非常有能力,也可以做任何你想做的事情。您可能也需要Django REST 框架。还有其他可用的选项,但这将是让某些东西安全和正​​常运行的最快方法。

让 Django 与你的 webpack/react 工作流很好地协同工作并不太复杂。有像Django-Webpack-Loader这样的项目以及关于它的各种在线教程,展示了如何使用它。

祝你好运。

于 2019-07-11T12:41:58.483 回答