【发布时间】:2017-03-04 20:22:49
【问题描述】:
想法
我已经开始构建这种社交媒体类型的网站,其中包括基本的社交媒体页面,例如个人资料、状态提要、搜索、事件等。每个页面都是一个单独的 django 模板,数据通过使用 django 模板引擎中的变量进行可视化。但此时,我想使用 ReactJS 将这些静态页面更改为更动态的页面。
但是怎么做呢?
我想让页面动态化,但它仍然应该是一个 多页面 网站,其 URL 类似于 /user/<id>。我想出了以下选项:
每个页面都有一个模板。每页有一个捆绑包。让 Django 处理路由。
- 为每个页面创建一个单独的 Django 模板,就像普通的 Django 应用程序一样。
- 使用django-webpack-loader 加载包。
- 每个页面都有一个单独的包。通过在
webpack.config.js中添加多个条目来创建捆绑包。当我们有 40 多个不同的页面时,这可能会导致相当多的入口点。 - URL 由 Django 处理,并且可由 React 通过模板中的公共 javascript 变量访问。 Example。页面的其他初始数据(如用户名、头像、个人资料信息)也通过 Django 模板引擎加载到此变量中。
- 无需重新加载页面的表单验证等动态功能由 React 和使用 django-rest-framework 的 Django Rest API 处理。
那么?
- 这是处理此问题的正确方法吗?
- 我在弄清楚如何将 django 模板变量(例如
request.user)获取到 React 可访问的 javascript 变量时遇到了一些麻烦。 - 如果是这样,我应该如何构建这样的应用程序?
- 可以为每个单独的页面打包吗?例如,所有页面都有相同的标题。在每个包中包含这个标头似乎有点过头了。
【问题讨论】:
标签: javascript python django reactjs react-router