我想将React与Django非单页应用程序一起使用-Django将负责路由,渲染HTML模板和提供数据。
React应该仅在HTML页面内的某些特定组件上使用,例如。 (下拉菜单,自动填充,模态),理想情况下,只需删除即可。 div元素在HTML内具有一个类,并为React组件传递道具。
什么是最好的-可维护的,可扩展的解决方案?
答案 0 :(得分:0)
这可能不是您想要做的,因为React周围有一个非常健壮的生态系统,可用于构建高性能的单页应用程序(SPA)。您应该能够将React站点与Django应用程序分离。这样一来,您便可以将React应用投放到高效能的CDN上,而不必让Django服务器托管每个访问者。
但是,如果您坚持认为,最直接的方法可能是在每个Django路由上创建一个 <cfset var cookie__ = arguments.prefix & "|" & ToBase64(value)>
<cfset var sig = hmacSign(arguments.key, cookie__)>
<cfreturn cookie__ & "|" & sig>
和index.js
。换句话说,在每个路由上创建一个单独的“ React app”,Django将作为用户转到每个端点的路径。我以前看过。它相对于SPA而言既耗时又效率低下,但是可以做到。
如果您真的打算写原始的HTML / CSS / JS并只是在它们之间使用React进行操作,那么您可能会想使用各种第二个参数来调用ReactDOM.render
(称为index.html
),而不是将整个应用程序注入到准系统HTML模板中的标准{-{1}}的标准React-y方法。
我注意到您用服务器端渲染标记了您的问题。如果出于某种原因这对您来说是一个硬性要求,那么我会考虑使用next.js,这是为此专门优化的Node框架。
答案 1 :(得分:0)
请参见django-jsx包装和server side rendering纸。我不是前端专家,但是当我遇到此类问题时,我的朋友就把我推荐给了Google isomorphic app with django and react
。
答案 2 :(得分:0)
我发现这个add React to an HTML page in one minute页面/示例对于在Django模板内部渲染React组件绝对是毫不费力的!