Flask 中的 ReactJS 服务器端渲染

ReactJS Server side rendering in Flask

我刚刚开始学习 ReactJS,正在确定它是否值得从 AngularJS 切换到与 Flask 一起使用。我知道 ReactJS 的好处之一是 renderToString 的工作方式来呈现和 HTML 字符串以获得更快的加载时间和更好的 SEO。据我所知,SEO 比 AngularJS 可以做的要好得多,尽管 google 正在努力改进爬行 Javascript。

我的问题是关于 SEO 优势如何与像 Flask 这样的框架一起工作。假设我有一个像下面这样的组件,只需将它渲染到我的 div。如果我想渲染这个服务器端,我是否需要使用像 nodejs 或一些可以执行 Javascript 的 Python 库?如果我尝试执行 React.renderToString(.....) 它不会执行任何操作。如果是这种情况,ReactJS 的 SEO 广告宣传的好处不是真的比 AngularJS 更好吗?请帮助我理解这一点,如果可以用 Flask 渲染 Javascript 服务器端,我该如何实现这一点?

var Foo = React.createClass({
    render: function() {
        return (
            <div>Foo</div>
        );
    }
});

React.render(<Foo  />, document.getElementById('foo'));

这是针对 Django 而不是 Flask,但应该很容易适应底层技术:https://github.com/markfinger/django-react

有一个 django-react 的分支,现在已经发展成为一个更通用的包:https://github.com/mic159/react-render。您还需要安装其节点服务。它可以与任何 python 框架一起使用。 这是迄今为止拥有同构模板的最简单方法。