在Flask中进行ReactJS服务器端渲染

11

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

我的问题是关于像下面这样的组件如何在类似Flask这样的框架中发挥SEO优势。如果我想在服务器端渲染此组件,我需要使用类似于Node.js或能够执行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'));

1
有一些关于React+PHP的问题,对于Python来说答案是相同的(例如将PHPv8替换为Pyv8),并且对应的Python代码比如这个例子 - Brigand
2个回答

3

你知道是否有一种不使用内联脚本的好方法来实现这个吗?在他们的示例中,他们只是将上下文放在内联脚本标签中。我正在寻找一个让我的 CSP 满意的替代方案。 - anthony-dandrea

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接