与django一起创建SPA的最佳方法是什么? 只有rest api或Django渲染的不同部分(例如,作为一个简单的模板)。使用django渲染有什么好处? 感谢。
答案 0 :(得分:1)
我们目前已将React迷你应用程序集成到我们现有的Django项目中。
我们只返回包含道具的上下文:
class HelloWorld(DetailView):
template_name = '/path/to/your/template.html'
def get_context_data(self, **kwargs):
props = {
// your props/data
}
context = {
'component': 'overview.js',
'title': 'Hello World',
'props': json.dumps(props)
}
return context
然后在模板中,我们将道具渲染到全局窗口范围:
<script>
// Make sure to escape your props to prevent XSS! See here for the source
// for the json filter: https://gist.github.com/pirate/c18bfe4fd96008ffa0aef25001a2e88f
window.props = {{props|safe}};
</script>
<script src="/path/to/your/js/{{component}"></script>
然后在React应用程序中,我使用应用程序名称进行渲染并传入window.props。
ReactDOM.render(React.createElement(OverviewApp, window.props), document.getElementById('root');)
您可以在此处详细了解此方法:
https://hackernoon.com/reconciling-djangos-mvc-templates-with-react-components-3aa986cf510a