我正在使用一个简单的 Controller 来更改显示的ReactJS View ,如下所示:

    getInitialState: function() {
        return {view: null};
    },
    setViewFromHash: function () {
        var that = this;
        var address = window.location.hash;
        if(address != "")
        {
            address = address.substring(1);
            require(["jsx!" + address], function (View) {
                that.setState({view: View});
            });
        }
        else
        {
            require(["jsx!Home"], function (View) {
                that.setState({view: View});
            });
        }
    },
    componentWillMount: function () {
        var that = this;
        window.onhashchange = function () {
            that.setViewFromHash();
        };
        this.setViewFromHash();
    },
    onTitleUpdate: function(title, canonical) {
        document.title = title + titleDefault;
        $('link[rel=canonical]').prop('href', canonicalDefault + canonical);
    },
    render: function () {
        var viewToLoad = null;
        if (this.state.view === null) {
            viewToLoad = "Loading...";
        } else {
            viewToLoad = this.state.view({ onTitleUpdate: this.onTitleUpdate });
        }

        return (
            <article>
                {viewToLoad}
            </article>
        );
    }

在 View 中,我触发一个回调:
var Home = React.createClass({
    render: function () {
        this.props.onTitleUpdate("Home", "");
...

我的问题是,此回调是否发生在有利于SEO的时刻,即页面标题和规范更改,是否以触发Google bot意识到标题和规范已更改的方式进行了更新?

我也在考虑使用Cortex来管理我的数据,这会更好吗?更差?没有区别?至于SEO/Google bot对它正在查看的“页面”的感知?

最佳答案

Google通常会保留有关何时执行JavaScript的详细信息;考虑一下2010年的这句话:



一般来说,我只是假设Google(当然还有其他一些搜索引擎)将不会执行我的JavaScript,这意味着我对页面所做的任何更改都不会被提取。当然,您可以简单地尝试一下,然后see what Google sees知道它是否有效。

无论哪种情况,React都可以渲染on the server side并透明地将其事件处理程序挂接到客户端上,从而使您能够轻松地处理这两种情况。 (您可能需要重新调整一些代码才能使其在两种情况下都可以运行。)

关于seo - SEO如何在ReactJS页面中发挥作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23024305/

10-16 23:11