如何开始使用现有django网站上的反应

时间:2016-12-20 15:58:02

标签: javascript django reactjs

我的团队开发了一个django网站,其中包含许多完全没有javascript工作的页面,或者可能使用小jquery操作。我们希望尝试使用react库来加速我们的页面并添加页面导航而不需要完整页面重新加载(我们选择反应是因为我们实施了一些SPA网站并且我们喜欢它)。我们的页面也应该使用disable js。

我想从一个页面开始,上面有5个表单。如果提交任何表单然后重新加载页面,则字段中填充的数据将丢失并且运行缓慢。我想在ajax上实现发送数据并在服务器应答后更改一些html。

每个反应教程都说要在内部编写带有html标记的jsx组件,将它与babel转换为纯js并在页面加载时动态添加页面。或者,如果要在服务器上呈现页面,则需要使用独立节点服务器。但是我已经有了一个强大的django模板引擎来在服务器端渲染模板,我还需要使用特定的django来渲染模板,比如多语言内容,用户变量等。

我是否可以在服务器端使用django完全呈现页面,并在加载后声明反应,该特定div是具有初始状态和现有html标记的组件?或者你可以告诉我另一个解决方案,而不是完全重写我的网站。感谢。

1 个答案:

答案 0 :(得分:1)

好吧,有点儿。每个响应应用程序都从指定要呈现的根HTML元素开始。如果您只想使用react渲染网站的一部分,只需指定一个涵盖所需部分的元素即可。像这样:

ReactDOM.render(<MyMainComponent />, document.getElementById('myReactSection'));

但是,这样做会覆盖任何现有的HTML(https://facebook.github.io/react/docs/react-dom.html#render)。因此,您需要React重新渲染已经存在的html。

此外,你没有 NEED babel编写反应代码,它只是非常有用(与webpack一起)生成一个单独的javascript包文件发送给客户端最初是使用令人敬畏的新ES6语法(https://babeljs.io/learn-es2015/

编写的