【问题标题】:ReactJS Server side rendering in FlaskFlask 中的 ReactJS 服务器端渲染
【发布时间】:2015-03-01 02:56:56
【问题描述】:

我刚刚开始学习 ReactJS,并且正在确定它是否值得从 AngularJS 转换为与 Flask 一起使用。我知道 ReactJS 的好处之一是 renderToString 的工作方式来呈现和 HTML 字符串以加快加载时间和更好的 SEO。从我读到的内容来看,尽管谷歌正在努力改进抓取 Javascript,但 SEO 比 AngularJS 能做的要好得多。

我的问题是关于 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'));

【问题讨论】:

  • 有几个关于react+php的问题请教; python的答案是相同的(例如用Pyv8替换PHPv8),以及等效的python代码,例如this one.

标签: node.js flask reactjs


【解决方案1】:

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

【讨论】:

  • 您知道是否有不使用内联脚本的好方法吗?在他们的示例中,他们只是将上下文放在内联脚本标记中。正在寻找一种替代方案来让我的 CSP 满意。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2017-09-09
    • 2017-05-16
    相关资源
    最近更新 更多