我正在使用一个简单的控制器来更改我所示的Reactjs视图,如下所示:

    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>
        );
    }
.

在视图中,我触发回调:

var Home = React.createClass({
    render: function () {
        this.props.onTitleUpdate("Home", "");
...
.

我的问题是,这个回调是在一个会受益SEO的点处发生的,即页面标题和规范改变,它们是以触发Google Bot意识到标题和规范的改变的方式更新的吗?

我还在考虑使用 cortex

有帮助吗?

解决方案

谷歌通常会在包裹下执行JavaScript时保留详细信息;从2010年考虑此报价:

“暂时,我们在JavaScript中扫描,我们正在寻找链接。谷歌对JavaScript的更聪明,可以执行一些JavaScript。我不会说我们执行所有JavaScript,所以有一些条件我们不执行JavaScript。当然还有一些常见的,众所周知的JavaScript,如Google Analytics,您甚至不会想要执行,因为您不想尝试从GoogleBot生成幻像访问Google Analytics “。

在大中,我只是假设谷歌(当然某些其他搜索引擎)不会执行我的javascript,这意味着我对页面的任何更改都不会被拾取。当然,你可以简单地尝试它,而看谷歌所看到的东西知道它是否工作。

在任何一种情况下,React都能能够呈现
在服务器端和透明地挂钩客户端上的事件处理程序,让您能够轻松处理。 (您可能需要重新捕获一些代码以使其在两个上下文中运行。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top