仅在服务器上执行代码

Executing code on server only

我有一个同构 ReactJS 应用程序。我有一小部分 JS 仅用于监视(由新遗物提供),我想将其放置在 React 组件中(准确地说,这是一个显示图像的组件,或者如果没有可用图像,显示一个 NoImage 组件,我想使用监控来跟踪何时加载无图像。),但要注意的是我只希望这个 JS 代码在服务器而不是客户端上呈现时 运行。

有办法实现吗?

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

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