服务器端渲染

时间:2017-09-10 18:13:10

标签: node.js reactjs express

我尝试在服务器端渲染我的网页以获得更好的性能,但遇到了我的网页组件componentDidMount()未被调用的问题。

例如,这是我的主模板文件:

import React from 'react';
import Cube from './components/Cube/Cube.jsx';

class Index extends React.Component {
  render() {
    return (
          <html>
            <head>
              <title>{this.props.title}</title>
            </head>
            <body>
              <Cube />
            </body>
          </html>
    );
  }
}

我的Cube.jsx:

import React from 'react';

class Cube extends React.Component {
    componentDidMount() {
        console.log("Hey!");
    }

    render() {
        return (
            <div>
                <h1>Hello</h1>
            </div>
        );
    }
}

export default Cube;

我没有看到&#34;嘿!&#34;即使我在页面加载时看到<h1>Hello</h1>,也会在我的pm2日志或Chrome控制台中注销。这使我无法为我的组件提供任何逻辑。

如何解决此问题并使我的子组件componentDidMount()被调用?注意我使用express-react-views进行服务器端渲染。

1 个答案:

答案 0 :(得分:0)

我认为唯一被称为服务器端的生命周期钩子是componentWillMount,如here所述

即使这样,您也无法在Chrome控制台上看到输出。您只能在节点日志中看到它。

如果这回答了您的问题,请告诉我。