使用node.js和React进行客户端渲染

时间:2016-08-25 09:15:50

标签: node.js reactjs client-side

首先,我是Node.js和React的新手,我一直在努力理解客户端渲染和服务器端渲染之间的区别。

我使用以下代码设置了一个带有express的node.js服务器:

var express = require('express');
var React = require('react');
var app = express();

app.set('port', (process.env.PORT || 5000));

app.use(express.static(__dirname + '/public'));

app.set('views', __dirname + '/views');
app.set('view engine', 'jsx');
app.engine('jsx', require('express-react-views').createEngine());

app.get('/', function(request, response) {
  response.render('pages/index');
});

app.listen(app.get('port'), function() {
  console.log('Node app is running on port', app.get('port'));
});

我的问题是我的index.jsx是在服务器端呈现的,我希望它在客户端正确使用React。

这是我的index.jsx:

var React = require('react');

class index extends React.Component {
  constructor (props) {
    super(props)
    this.state = {
      name: ''
    };
  }

  componentDidMount() {
    this.db()
  }

  db() {
    this.setState({
        name: 'Marvin'
    })
  }

  render () {
    return (
      <div>
        <h2>{this.state.name}</h2>
      </div>
    );
  }
}

module.exports = index

我的componentDidMount()没有被触发,因为它在服务器端。那么如何使用我的设置在客户端渲染呢?

0 个答案:

没有答案