React Server渲染应用程序中ComponentDidMount的替代方案是什么?

时间:2018-08-16 16:26:43

标签: reactjs isomorphic-javascript

我创建了一个同构的React应用程序。一切正常,直到我尝试在元素上添加动画。如果它是客户端渲染应用程序,则可以通过编写动画函数并在componentDidMount()组件生命周期方法中调用该函数来实现。但不幸的是,这种方法不适用于SSR。

在这种情况下如何调用动画功能? (已经尝试了componentWillMount,它无法正常工作)

1 个答案:

答案 0 :(得分:1)

componentWillMount仅在其安装在前端的DOM上时才会触发。从设计上讲,服务器渲染时不应调用任何生命周期方法。这是因为服务器端渲染主要用于在数据完全加载之前显示网站布局。

要使生命周期方法可在客户端上使用,只需在客户端上使用相同组件即可使用ReactDOM.hydrate()which is specifically designed to be used with server rendered content。这样,它们将按预期工作,同时仍包含服务器呈现的内容。

如果您不想这样做,而您只是想使用React从服务器生成HTML,则应该考虑使用常规的模板语言。但是,如果您仍然想在不使用客户端的React的情况下调用动画,则应尝试使动画与纯CSS动画一起使用。