我正在使用一个简单的 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/