我的团队开发了一个django网站,其中包含许多完全没有javascript工作的页面,或者可能使用小jquery操作。我们希望尝试使用react库来加速我们的页面并添加页面导航而不需要完整页面重新加载(我们选择反应是因为我们实施了一些SPA网站并且我们喜欢它)。我们的页面也应该使用disable js。
我想从一个页面开始,上面有5个表单。如果提交任何表单然后重新加载页面,则字段中填充的数据将丢失并且运行缓慢。我想在ajax上实现发送数据并在服务器应答后更改一些html。
每个反应教程都说要在内部编写带有html标记的jsx组件,将它与babel转换为纯js并在页面加载时动态添加页面。或者,如果要在服务器上呈现页面,则需要使用独立节点服务器。但是我已经有了一个强大的django模板引擎来在服务器端渲染模板,我还需要使用特定的django来渲染模板,比如多语言内容,用户变量等。
我是否可以在服务器端使用django完全呈现页面,并在加载后声明反应,该特定div是具有初始状态和现有html标记的组件?或者你可以告诉我另一个解决方案,而不是完全重写我的网站。感谢。
答案 0 :(得分:1)
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/)
编写的