質問

私はこのような私の表示された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を起動する方法で更新されますか?

私はまた、

役に立ちましたか?

解決

Googleは一般的に、折り返しの下にJavaScriptを実行したときの詳細を保持しています。 2010年からこの引用を検討する:

"しばらくの間、JavaScript内でスキャンしていました.GoogleはJavaScriptについてスマートになり、いくつかのJavaScriptを実行できます。私たちはすべてのJavaScriptを実行することはありません。 JavaScriptを実行していません。確かに、GoogleBotからGoogle Analyticsへのファンタム訪問を生成しようとしたくないため、実行したくない一般的な、一般的で知られているJavaScriptがいくつか実行されます。 "。

大きい、私は単にGoogle(そして確かに他の検索エンジン)が私のJavaScriptを実行しないと仮定します。つまり、ページに行った変更は拾われません。もちろん、それを試してみることができます、そして> GoogleがSee を見るそれがうまくいくかどうかを知っています。

どちらの場合でも、Reactにはサーバー側で上でクライアント上のイベントハンドラを透明に接続し、両方を簡単に処理する機能を提供します。 (あなたはそれを両方のコンテキストで実行させるためにいくつかのコードを再ジガーする必要があるかもしれません。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top