如何整合Django和react-router-dom?

时间:2018-10-16 18:43:24

标签: django reactjs

如何设置Django urls.py和React组件来建立它? 我的要求是让Django使用如下urls文件渲染主页:

urlpatterns = [
    path('', views.index),
    ]

然后,反应路由器应呈现后续链接(例如/ home,/ about)

2 个答案:

答案 0 :(得分:2)

要使用django 2.0 TemplateModel语法设置包罗万象的路由,请使用TemplateModel转换器。这会将所有网址路由到path提供的react应用。

<:path>

对于正则表达式路由,空字符串是万能的。

views.index

如果您有不应路由到React应用的路由,则必须首先包括这些路由。

urlpatterns = [
    path('<route:path>', views.index),
]

答案 1 :(得分:0)

您的React应用程序将在一个页面中提供。我假设您的view.index是您的空白html,通常看起来像这样:

  

<div id="root"></div> <script src="/dist/bundle.js"></script>

(确保在script标记中提供了应用程序包)。 Django将为html文件提供相关的路由。在您的情况下,如果您希望应用程序的根是React,则您的urls.py看起来像:

  

urlpatterns = [ path('/', views.index), ]

一旦Django提供了html文件,脚本标签就将您的应用程序加载到该页面上了-此时,它将进入您的React应用程序的根目录,然后React-Router将从那里开始。 Django不会知道任何其他路由,因为一旦React接管路由是“虚拟的”。希望这能回答您的问题-如果您需要更多信息,请告诉我。