【发布时间】:2019-07-11 11:57:18
【问题描述】:
使用 webpack 和 python 作为后端来实现同构反应应用程序的最佳方法是什么
需要实现以下功能 1.反应路由器 2. Redux 商店
【问题讨论】:
标签: python reactjs webpack react-router isomorphic
使用 webpack 和 python 作为后端来实现同构反应应用程序的最佳方法是什么
需要实现以下功能 1.反应路由器 2. Redux 商店
【问题讨论】:
标签: python reactjs webpack react-router isomorphic
通过同构,我理解您的意思是在服务器和客户端上都呈现 - 所以网站的第一次访问将返回静态 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,Here is a great tutorial from django-girls。但是,如果你想走主要是 JS 路线,这里有一些想法:
可能最好的方法是首先设计您的数据结构,然后为您的数据创建一个 REST api。 (例如 /api/1.0/cars/rustbucket_94 发送 JSON 数据。)
接下来,找出面向用户的 URL 架构,并确定需要拉入哪些 REST 端点才能获取这些页面。 (最终用户应该如何看待 URL。例如/cars/rustbucket_94.html)
像往常一样设计你的 React 应用程序,使用那些 REST / JSON 端点和反应路由器来正确显示它。
一旦您的整个 React 应用程序正常工作,您现在可以构建整个事物的服务器端渲染版本,您需要从头开始重新实现它,并且可以通过 JSON 端点访问数据 (慢)或通过在页面内部进行查询。
后端使用哪个 Python 框架?
我建议从 Django 开始。它非常有能力,也可以做任何你想做的事情。您可能也需要Django REST framework。还有其他可用的选项,但这是让某些东西安全、正常运行的最快方法。
让 Django 与您的 webpack/react 工作流很好地协同工作并不太复杂。有像Django-Webpack-Loader这样的项目,还有各种关于它的在线教程,展示了如何使用它。
祝你好运。
【讨论】: