仅在服务器上执行代码

时间:2016-05-06 10:20:40

标签: reactjs newrelic isomorphic-javascript

我有一个Isomorphic ReactJS应用程序。我有一小部分用于监控的JS(由新文件提供),我想放在一个React组件中(确切地说,这是一个显示图像的组件,或者如果没有可用的图像,显示一个NoImage组件,我想使用监视来跟踪没有加载图像的时间。),但是我只希望这个JS代码在服务器上而不是客户端上运行时运行。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

在进行服务器端渲染时,可以使用componentWillMount(),因为它在服务器上调用(除了客户端),而componetDidMount()仅称为客户端。这样的事情应该有效:

componentWillMount() {
  if (typeof process != 'undefined') {
    executeCodeOnServer()
  }
  // or...
  if (typeof document == 'undefined') {
    executeCodeOnServer()
  }
}