前言

当你使用Next.JS进行服务器端渲染时,它并不那么简单,原因是:wow.JS使用浏览器的’window’对象来说,并且每一次渲染时没有’window’对象!…因为它是在服务器中完成的!

1.通过npm安装wow.JS

  1. npm add wow.js

2.在你的_document.js或Layoutn HOC的Head组件中导入animate.css

  1. import Head from "next/head"
  2. ...
  3. <Head>
  4. <title>my Project</title>
  5. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/animate.css@3.5.2/animate.min.css"/>
  6. </Head>

3.执行

  1. const isServer = typeof window === 'undefined'
  2. const WOW = !isServer ? require('wow.js') : null
  3. export default class MyComponent extends React.Component {
  4. componentDidMount() {
  5. new WOW().init()
  6. }
  7. render() {
  8. return (
  9. <h2 className={"wow fadeInUp"}>I'm animated!</h2>
  10. )
  11. }
  12. }
  13. <div className="wow animate__animated animate__zoomIn animate__delay-1s box">
  14. <img
  15. src="https://static.253.com/images/new_www/bannerr/banner.png"
  16. alt="智能云通讯服务"
  17. width="437"
  18. />
  19. </div>