通过 WordPress WP-API 在客户端呈现 React 组件

Rendering React Components Client-side via WordPress WP-API

我有兴趣尝试使用 React 和 WordPress WP-API,我很快在下面整理了一个概念验证页面模板。

好奇,使用 React 在客户端呈现 API 数据与在 PHP 中允许 WP 在服务器上像往常一样呈现数据有什么性能影响?

<div id="react"></div>

<script type="text/babel">

var WpPage = React.createClass({
  getInitialState: function() {
    return {
      id: '',
      date: ''
    };
  },

  componentDidMount: function() {
    this.serverRequest = $.get(this.props.source, function (result) {
      var pageObj = result;
      this.setState({
        id: pageObj.id,
        date: pageObj.date
      });
    }.bind(this));
  },

  componentWillUnmount: function() {
    this.serverRequest.abort();
  },

  render: function() {
    return (
      <div>
        <p>{this.state.id} :: ID</p>
        <p>{this.state.date} :: DATE</p>
      </div>
    );
  }
});

ReactDOM.render(
  <WpPage source="/wp-json/wp/v2/pages/{id}" />,
  document.getElementById('react')
);
</script>

我认为使用 React 可以通过以下一些方法为用户提供更好的性能和体验-

  • 您可以使用静态菜单和页脚定义基本布局并加载 通过 AJAX 和 react-router CSSTransitionGroup 的内容在这里 是一个很好的例子(codepen.io/luisrudge/pen/QbEeOR/),这样用户就可以拥有无​​缝的网络 经验.
  • 您可以使用 websockets 更快地与 wordpress 通信。
  • 由于您总是会调用 API 获取每个内容组件的结果,因此您可能需要考虑将一些内容存储在 localStorage 或会话中以提高效率并减少 API 调用。 (或者使用 Flux?)